Saya telah menggunakan vim selama beberapa tahun sebagai editor sekunder tetapi karena berbagai alasan, saya semakin sering menggunakannya bahkan ketika editor utama saya tersedia. Satu masalah yang selalu mengganggu saya vim
, dan yang membuat saya lebih sering menggunakannya, adalah cara menangani penempatan kursor. Kursor hanya bisa berada pada karakter, bukan di antara karakter, seperti halnya editor yang dibuat sejak 1984.
Untuk satu contoh saja mengapa ini menjadi masalah, jika saya ingin menghapus kata terakhir pada sebuah baris, saya menekan $
untuk pergi ke akhir baris, dan kemudian db
menghapus mundur. Ini meninggalkan karakter untuk dihapus, karena $
tidak benar - benar pergi ke akhir baris, itu pergi ke karakter terakhir dari baris , dan db
hanya menghapus apa yang ada sebelum karakter saat ini. Masalahnya bukan bahwa saya harus mengetik karakter tambahan, itu adalah pemikiran ekstra yang terlibat dalam melakukan apa yang seharusnya sederhana, yang mengalihkan perhatian saya dari apa yang sebenarnya saya coba capai.
Tampaknya bagi saya bahwa penempatan kursor ide yang lebih modern dalam segala hal lebih unggul, dan saya ingin beralih vim
untuk menggunakan pendekatan itu. Saya yakin beberapa vim
penggemar hard-core tidak akan setuju dengan pandangan saya tentang hal itu, tetapi karena salah satu argumen standar untuk vim
superioritas adalah konfigurasi yang tidak terbatas:
- dapatkah itu dikirimkan dalam kasus ini?
- Dapat
vim
dibuat untuk menempatkan kursor di antara karakter?
Insert
mode atau melewatkan titiknormal
mode. Saya akan melakukan$daw
atau$bdw
menghapus kata terakhir pada baris dalam mode normal. DalamInsert
mode yang akan saya lakukanA<Ctrl-w>
.$bD
Jawaban:
Anda bisa
:set virtualedit+=onemore
, yang memungkinkan Anda untuk melewati karakter terakhir. Sayangnya untuk Anda,$
masih masuk ke karakter terakhir; Anda harus mengarahkan kursor untuk melewatinya. Di sisi lain, Anda dapat menggunakang$
, yang biasanya pergi ke karakter terakhir dari garis layar pada garis yang membungkus; dalamonemore
mode ini juga hanya melewati karakter terakhir dari garis yang tidak terbungkus (atau baris layar terakhir dari garis yang dibungkus).:h 'virtualedit'
mengatakan opsi ini dapat mengacaukan skrip, tetapi saya tidak tahu seberapa besar risiko yang ada dalam kenyataan.sumber