Bagaimana menghadapi situasi jika kata tersebut mengandung titik atau garis miring (misalnya /usr/bin/bashatau 1222.333)? Sepertinya vim mengartikan /dan .sebagai akhir kata dan tidak akan memilih seluruh string.
Alexander Cska
85
Saya sering menemukan diri saya ingin mengganti satu kata dengan kata lain yang telah saya tarik dari tempat lain. Masalah dengan solusi lain adalah jika Anda mencoba mengubah kata, maka tempel Anda berikutnya adalah kata yang Anda hapus cw.
Coba yang berikut ini:
1 "This first word should overwrite the second"
yiw yank inner word (copy word under cursor, say "first").
... Move the cursor to another word (say "second").
viwp select "second", then replace it with "first".
Ini bekerja dengan baik tetapi hanya jika penggantian harus dilakukan once. Jika saya harus mengganti pasangan second' by pertama` (dalam contoh Anda), kata yang disalin menjadi secondsetelah penggantian pertama.
ViFI
32
ciw
c change
iw inner word
Ini akan menghapus kata di bawah kursor (bahkan jika kursor berada di suatu tempat di tengah kata) dan masuk ke mode insert.
Jika Anda ingin mengubah kata dengan kata yang sebelumnya ditarik, ada solusi lain untuk viwp(setelah Anda menarik kata pertama).
ciwmenghapus kata sebelumnya dan menempatkan Anda dalam mode sisipkan di tempat kata sebelumnya. Tetapi kemudian Anda dapat menggunakan ctrl+r, 0untuk memasukkan isi register 0 (yang berisi kata yang sebelumnya disenggol).
Begitu:
yiw
[move to next word]
ciw
ctrl+r
0
Ini berfungsi lebih baik daripada viwpkarena setelah penggunaan pertama Anda kemudian dapat berulang kali melakukan penggantian dengan .. Itu juga tidak beralih ke mode visual dan sorot sebentar.
Tidak yakin apa yang Anda maksudkan bahwa itu tidak mengubah mode, tampaknya sebaliknya, tetapi mungkin itu yang Anda inginkan, untuk tetap dalam mode insert. Tetapi keuntungan besar adalah bahwa ini (bertentangan dengan viwp) dapat dilakukan beberapa kali hanya dengan satu sentakan. Terima kasih!
Palo
Oh Anda benar, saya berpikir untuk masuk ke mode visual, diedit. Saya tidak menyadari itu adalah batasan viwp- bahkan .tidak menduplikatnya.
Connor
3
Sejauh ini, ini adalah solusi terbaik ketika kami sudah mencabut kata penggantinya.
mljrg
1
Ini jawabannya! Kemampuan untuk menggunakan .ini sangat bagus!
/usr/bin/bash
atau1222.333
)? Sepertinya vim mengartikan/
dan.
sebagai akhir kata dan tidak akan memilih seluruh string.Saya sering menemukan diri saya ingin mengganti satu kata dengan kata lain yang telah saya tarik dari tempat lain. Masalah dengan solusi lain adalah jika Anda mencoba mengubah kata, maka tempel Anda berikutnya adalah kata yang Anda hapus
cw
.Coba yang berikut ini:
Semoga itu yang kamu cari.
sumber
once
. Jika saya harus mengganti pasangansecond' by
pertama` (dalam contoh Anda), kata yang disalin menjadisecond
setelah penggantian pertama.ciw
Ini akan menghapus kata di bawah kursor (bahkan jika kursor berada di suatu tempat di tengah kata) dan masuk ke mode insert.
Lihat juga dokumentasi Vim untuk referensi:
sumber
Jika Anda ingin mengubah kata dengan kata yang sebelumnya ditarik, ada solusi lain untuk
viwp
(setelah Anda menarik kata pertama).ciw
menghapus kata sebelumnya dan menempatkan Anda dalam mode sisipkan di tempat kata sebelumnya. Tetapi kemudian Anda dapat menggunakanctrl+r, 0
untuk memasukkan isi register 0 (yang berisi kata yang sebelumnya disenggol).Begitu:
Ini berfungsi lebih baik daripada
viwp
karena setelah penggunaan pertama Anda kemudian dapat berulang kali melakukan penggantian dengan.
. Itu juga tidak beralih ke mode visual dan sorot sebentar.sumber
viwp
) dapat dilakukan beberapa kali hanya dengan satu sentakan. Terima kasih!viwp
- bahkan.
tidak menduplikatnya..
ini sangat bagus!Coba
cw
- seperti pada 'ubah kata'.Gunakan http://linuxmoz.com/vi-commands-cheat-sheet/ atau lembar contekan lainnya sebagai referensi.
sumber