Satu hal yang selalu mengganggu saya dalam vi / vim :
Jika saya "menarik" (alias "menyalin") beberapa teks, lalu pindah ke tempat lain dalam file dan melakukan "tempel", kursor saya tetap di awal teks yang baru saja saya tempel. Ini berbeda dari apa yang dilakukan kebanyakan editor modern, yaitu meletakkan kursor di akhir teks yang saya tempel.
Misalnya, dengan asumsi "salin penyangga" berisi kata "luar biasa" yang ingin saya tempel setelah kata "an" dalam frasa:
This is an editor
Di, misalnya gedit , setelah tempel:
This is an awesome editor
^ Cursor is here
Dalam vi :
This is an awesome editor
^ Cursor is here
Dapatkah saya mengubah vi untuk bertindak seperti (misalnya) gedit dalam hal ini?
Jawaban:
Dalam vim, gunakan
gp
dangP
bukannyap
danP
untuk meninggalkan kursor setelah teks yang disisipkan. Jika Anda ingin menukar ikatan, masukkan baris berikut di.vimrc
:Anehnya, di vim,
p
danP
meninggalkan kursor pada karakter yang disisipkan terakhir untuk buffer karakter, bahkan dalam mode yang kompatibel.Saya tidak tahu bagaimana cara mengubahnya di versi vi lainnya.
sumber
Saya cukup yakin ini sesuai desain. Jika Anda menempel menggunakan "p" (huruf kecil P), itu seharusnya menempel setelah posisi atau garis saat ini. Namun, jika Anda menempel menggunakan "P" (huruf P), maka itu ditempelkan sebelum posisi atau garis saat ini. Jika perilaku yang Anda inginkan adalah kursor berada di akhir teks yang baru Anda tempel, coba biasakan menggunakan "P" alih-alih "p".
Saya yakin jika Anda menggali cukup dalam, Anda bisa menemukan resep vim untuk diletakkan di .vimrc Anda yang akan selalu memindahkan kursor ke akhir pasta Anda, bahkan jika Anda menggunakan "p".
sumber
P
meninggalkan kursor di awal teks yang ditempel di vi (setidaknya di nvi dan per POSIX).