Saya menggunakan a"
gerakan agak sering di vim; mis. menggunakan ca"
sambil refactoring sepotong kode untuk mengganti argumen hardcoded dengan nama variabel. Masalah dengan pendekatan ini adalah itu a"
termasuk memimpin spasi putih jika tidak ada spasi tambahan :
Setiap ruang putih tambahan disertakan, kecuali tidak ada, maka ruang putih utama disertakan.
Jadi, ketika saya mengedit panggilan fungsi seperti ini:
aFunction(arg1, "toBeReplaced", arg3) #original
aFunction(arg1, replacedArg, arg3) #refactored
Aku harus secara manual-insert ulang ruang sebelum replacedArg
seperti ca"
menghapus itu.
Apakah ada gerakan serupa yang tidak termasuk ruang putih ini, atau adakah hal lain yang bisa saya gunakan alih-alih ca"
menyelamatkan saya dari keharusan mengetik ruang ekstra?
Catatan:
cf"
melakukan apa yang saya inginkan selama string tidak mengandung tanda kutip, tetapi mengharuskan saya untuk memiliki kursor di awal string. Saya ingin sesuatu yang bisa saya gunakan dari mana saja dalam string, dan?"<Enter>cf"
agak canggung mengetik.- Ini kurang tentang
<Space>
penekanan tombol tunggal dan lebih banyak tentang fakta bahwa saya awalnya sering lupa untuk memasukkan ruang, biaya saya setidaknya empat penekanan tombol tambahan (bi<Space><Esc>
) dan melanggar fokus saya. Jadi panjang perintah penggantian tidak sepenting itu, asalkan hanya menghapus teks di antara karakter yang diberikan dan kemudian masuk ke mode insert.
replace
cursor-motions
l4mpi
sumber
sumber
?"<Enter>
untuk mencari penawaran mundur pada suatu baris, Anda dapat menggunakanF"
.F
sama sepertif
tetapi pencarian ke kiri. Jawaban di bawah ini terlihat lebih baik untuk pertanyaan Anda, tetapiF
merupakan perintah yang berguna sendiri.Jawaban:
Dari /superuser/537453/vim-copy-quoted-string-without-whitespace : gunakan
2i"
sebagai gantia"
. Lihat juga:help i'
.sumber
Ada, di Wellle ini targets.vim Plugin. Mengutip bagian yang relevan (di dalam bagian " Kutipan "):
a' a" a
sumber
a"
, dan digunakanA"
untuk perilaku asli?Sebagai alternatif, Anda dapat menggunakan objek teks argumen / parameter. Sekarang Vim tidak memiliki objek teks argumen asli tetapi ada beberapa plugin di luar sana yang melakukannya:
Secara pribadi saya menggunakan plugin saya sendiri, argumentative.vim, namun saya telah mendengar hal-hal baik tentang sideways.vim dan target.vim.
sumber