Apa cara terbaik untuk mengganti beberapa baris dengan konten clipboard?
Masalah yang saya alami adalah ketika saya menarik sebuah baris dan menempelkannya di atas baris lain, "yank" diganti dengan baris yang baru saja saya ganti. Sekarang, jika saya ingin mengganti baris lain dengan baris yang sama, saya harus kembali ke atas dan menariknya lagi.
Pasti ada cara yang lebih baik untuk melakukan ini.
vnoremap
). File bantuan Vimversion7.txt
menyatakan xmap dan smap muncul di versi itu.xnoremap
jugavnoremap
bekerja"0
harus memiliki isi yank Anda. Sedikit lebih membosankan untuk mengetik, tetapi"0p
harus melakukan apa yang Anda inginkan.Sebagai alternatif, jangan pilih-dan-ganti garis lama di depan. Jika Anda menemukan baris-baris itu dengan pencarian, tekan
n.
terus-menerus (setelah inisialp
), lalu ketika semuanya ditempel, lakukanndd
diikuti sebanyak yangn.
diperlukan.Peralihan mental terbesar yang perlu saya lakukan saat pindah ke Vim adalah mencari cara untuk menerapkan pengeditan grup secara berurutan. Yaitu daripada melakukan banyak pengeditan pada satu baris dan kemudian melakukan banyak pengeditan yang sama di baris lain, saya akan melakukan pengeditan pertama pada sekelompok baris (menggunakan
.
untuk efek yang hebat), kemudian pengeditan kedua pada banyak baris baris, dll. Alternatifnya, penggunaan makro dapat membantu karena fantastis, tetapi terkadang sedikit lebih membosankan untuk bekerja dengan benar dengan perubahan "kompleks".sumber
:%s/.../.../gc
perintah tipe konfirmasi mungkin lebih dekat dengan apa yang Anda inginkan5@m
(untuk makro bernamam
)xnoremap p "0p
di ~ / .vimrcSaya sering menggunakan registri lain, salin baris yang Anda perlukan ke beberapa registri bernama
"ay
dan kemudian tempel dari sana"ap
sumber
Saat Anda menempelkan pilihan di Vim, ini akan menggantikan register default dengan konten pilihan. Jika menempelkan pilihan menghapus isi register clipboard maka kemungkinan besar Anda memiliki baris berikut di .vimrc Anda
Salah satu opsinya adalah menghapusnya dan menggunakan register papan klip eksplisit
"+
Pilihan lainnya adalah dengan menggunakan register lain yang bernama eksplisit (az). Setelah tempel pertama, tarik garis kembali ke
"c
misalnya dan kemudian gunakan"cp
untuk menempelkan dari sana ke luar.sumber
gunakan
np
wheren
adalah jumlah waktu yang Anda inginkan untuk menempelkan baris misalnya3p
akan menempelkan 3 baris.sumber
Alih-alih menggunakan salin / tempel, sering kali lebih baik menggunakan perintah objek teks seperti
ciw
mengubah kata bagian dalam. Metode ini memiliki keuntungan karena mudah diulang menggunakan.
perintah ulangi.yiw
Yank kata batin (salin kata di bawah kursor, ucapkan "pertama").ciw<C-r>0
Ubah "kedua", ganti dengan "pertama" (adalah Ctrl-R)..
Ubah "ketiga", ganti dengan "pertama".sumber
ciw<C-r>0
tidak bekerja dalam kasus saya.ciw
berubah ke mode penyisipan di mana<C-r>
menjadi tidak berguna. Adakah penjelasan yang mudah untuk ini? Mungkinkah itu ada hubungannya dengan texteditor (saya tidak menggunakan pur VIM tetapi binding Keyboard VIM di RStudio)<C-r>
dimaksudkan untuk digunakan dalam mode penyisipan, karena begitulah cara Anda menempel dari register tanpa meninggalkan mode penyisipan — di Vim, yaitu; Saya tidak terbiasa dengan RStudio tetapi saya rasa Anda benar dan mereka belum menerapkan pengikatan kunci khusus ini.