Dalam vim, jika saya masuk dan keluar dari mode edit tanpa melakukan apa-apa, tanda sisipan berakhir satu karakter ke kiri. Dan jika saya masuk dan keluar dari mode penambahan, tanda sisipan bergerak maju dan mundur.
Adakah cara untuk mengkonfigurasi vim untuk meninggalkan tanda sisir sendirian dalam kasus ini?
Idealnya saya hanya ingin selalu masuk ke mode penambahan, tetapi tanpa memindahkan tanda sisipan ketika saya masuk atau keluar dari mode.
(Saat ini saya biasanya menggunakan mode penyisipan karena itu tidak mengacaukan posisi tanda kuret saya pada entri. Artinya, kecuali ketika saya harus menambahkan ke akhir baris, dalam hal ini saya bersumpah pada vim untuk berperilaku sedemikian rupa kuno , tekan Esc dan masuk ke mode penambahan.)
i
ataua
tanpa berpikir tentang hal itu, dan mungkin bahkans
,S
,ci"
, dll bukan terbatasi
dana
.Jawaban:
Pertanyaan ini sering ditanyakan di antara pengguna vi / Vim baru, dan jawabannya adalah bahwa sementara dalam mode normal, kursor selalu "pada" karakter, tetapi dalam mode insert kursor selalu "antara" dua karakter (ingat, akhir -of-line adalah karakter). Anda tidak dapat benar-benar melihat ini diilustrasikan juga di konsol Vim, tetapi di GUI Anda akan melihat kursor menjadi bilah di antara dua karakter saat Anda memasukkan mode penyisipan, alih-alih blok di atas karakter ketika Anda berada dalam mode normal.
Jadi yang Anda lihat belum tentu kursor memindahkan satu karakter kembali ketika Anda meninggalkan mode sisipkan, tetapi hanya pindah ke karakter. Satu-satunya arah gerakan yang aman adalah ke kiri (atau belakang). Dengan demikian, Anda memiliki lebih dari satu cara memasuki mode sisipkan:
Beberapa orang telah berupaya menekan "gerakan" yang tidak mereka sukai ini, tetapi itu pasti mengganggu plugin dan skrip Vim lain yang ingin mereka jalankan di masa depan.
Saran saya adalah membiasakan diri menggunakan perintah "a" dan "i" (dan "A" dan "I") dalam situasi yang sesuai.
Perintah "o" dan "O" juga berguna untuk dipelajari. Lihat:
Sunting: Jika Anda masih bertekad untuk mengubah perilaku ini, coba tip ini: Mencegah melarikan diri dari memindahkan kursor satu karakter ke kiri
sumber
a
alih-alihi
.<esc>
memang akan mencegah sebagian besar penggunaan plugin<esc>
bekerja dengan benar, tetapi juga, itu akan terus mengganggu Anda ketika Anda akan menggunakan fitur standar lainnya yang kembali ke mode normal dengan cara yang sama<esc>
. Belajar menggunakan kunci yang tepat dengan cepat adalah solusi yang berskala / bekerja dalam jangka panjang.Saya pikir dengan carat maksud Anda kursor Anda dan jika Anda menggunakan "i" ini akan menyisipkan langsung di mana kursor Anda berada, "a" (yang saya percaya Anda cari) memindahkan kursor satu karakter ke kanan. Juga, shift-i (I) akan menuju ke awal baris dan shift-a (A) akan menuju ke akhir baris.
Jika saya salah mengerti pertanyaan Anda, saya minta maaf.
sumber
Karena memetakan ulang
<ESC>
dianggap 'berisiko', saya hanya menggabungkan dengan salah satu pendekatan kunci Hindari melarikan diri dan memiliki yang berikut ini di.vimrc
:Catatan: Pastikan tidak ada karakter spasi di ujung baris.
Sederhana, tetapi sepenuhnya disertifikasi sebagai "berfungsi dengan baik untuk saya" karena itulah yang seharusnya saya ketik dengan tangan.
Apakah saya menggunakan
a
ataui
saya masih mendapatkan caret bergerak kembali perilaku dan itu mengganggu saya karena lebih sering daripada tidak maka hal berikutnya yang ingin saya ketik adalahd$
menghapus ke akhir baris, dll.sumber
Inilah solusi saya:
Itu lucu. Pertanyaan yang sama ini ada di ketiga situs: SO, SU, Unix + Linux.
sumber