Saya akhirnya memutuskan untuk membuang tombol panah untuk navigasi hjkl
. Saya menggunakan Vim hardmode
plugin untuk menonaktifkan tombol panah.
Saya terbiasa navigasi cukup cepat, tetapi ternyata navigasi dalam mode insert tiba-tiba tidak mungkin.
Apakah ada solusi untuk ini? (mode insert yang ada bukan solusi).
insert-mode
navigation
stdcall
sumber
sumber
Jawaban:
Ada banyak opsi yang Anda miliki. Salah satu pilihan, dan IMO yang paling sederhana dan paling mudah adalah dengan berhenti menonaktifkan tombol panah. Saya mengerti mengapa banyak hardcore vimmers mengatakan hal-hal seperti
(Jelas saya bercanda) Namun, ada tujuan untuk tombol panah. Mereka sangat berguna untuk navigasi:
Dalam mode sisipkan
Di baris perintah
Umumnya ketika orang mengatakan kepada Anda untuk tidak menggunakan tombol panah, itu karena mereka ingin Anda mempelajari kembali navigasi dengan cara yang lebih mirip vim. Jika Anda merasa nyaman
hjkl
, dan Anda sebagian besar menggunakan tombol panah dalam mode insert, tidak ada alasan kuat untuk memaksa diri Anda untuk tidak menggunakannya.Opsi # 2 adalah untuk memetakan kembali
ctrl-hjkl
untuk bertindak seperti tombol kursor. Ini bagus karena Anda dapat tetap di homerow, dan itu cocok dengan memori otot yang telah Anda pelajarihjkl
dalam mode normal. Sebenarnya, inilah yang saya lakukan . Kelemahan utama dari pendekatan ini adalah bahwa in dapat merepotkan untuk pemasangan di terminal vim karena<C-j>
menghasilkanNUL
byte. Saya menyiasati ini dengan menggunakan Gvim. Saya tidak tahu apakah ada perbaikan yang mudah untuk konsol vim atau tidak.Opsi # 3 digunakan
<C-o>
untuk membuat gerakan mode normal kecil. Misalnya, jika Anda mengetikdan Anda menyadari Anda lupa koma, daripada melakukan leftleftleftleftleftleft, Anda bisa melakukan
<C-o>b<C-o>h
atau<C-o>2Fo
, atau kombinasi lain dari gerakan mode normal yang Anda suka.Tentu saja, opsi lain, dan yang sangat saya sukai adalah menggunakan saja Esc, buat beberapa gerakan kecil sebelum kembali ke mode normal. Anda menyebutkan bahwa Anda lebih suka tidak melakukannya, tetapi kadang-kadang ini benar-benar cara yang paling efisien.
Mungkin ada beberapa pendekatan lain juga, tetapi ini adalah yang saya sukai yang berhasil bagi saya.
sumber
<c-o>gk
dan<c-o>gj
bukannya<Up>
dan<Down>
. Mengapa demikian?gk
dangj
secara visual naik dan turun garis bahkan jika garis dibungkus.noremap <Up> <NOP>
...) . Anda menghabiskan cukup waktu dalam mode normal untuk belajar HJKL, tetapi mereka ada di sana saat Anda membutuhkannya. Atau setidaknya, saya menemukan ini sebagai jalan tengah yang nyaman antara membiarkannya selalu mati atau selalu menyala, dan itu tidak memerlukan memetakan kembali kunci lain (banyak orang seperti Ctrl-HJKL untuk bergerak di antara panel).Saya suka menggunakan tombol Kontrol untuk mengubah
hjkl
tombol gerakan menjadi tombol gerakan "universal". Inilah bagian saya yang relevan.vimrc
:The
inoremap
pernyataan berlaku untuk modus memasukkan, sedangkancnoremap
yang berlaku untuk modus perintah. (Saya telah menggunakan pemetaan ini begitu lama sehingga saya lupa apakah ada cara untuk menavigasi sejarah mode-perintah tanpa itu.)(Sunting: Saya melihat jawaban lain telah menyebutkan kemungkinan ini. Namun, mungkin membantu untuk melihat perintah pemetaan yang sebenarnya.)
sumber
Tekan esclalu gunakan hjkldan wWbBdan semua navigasi lain yang ingin Anda buat. Inti dari mode keras adalah membuat Anda belajar menavigasi dengan gerakan vim yang lebih kompleks. Lakukan pengeditan kecil kemudian pindah ke lokasi baru, menggunakan mode normal.
Jika Anda tidak ingin mempelajari cara menavigasi lebih cepat dengan mengaktifkan hardmode, lihat jawaban saya dari pertanyaan lain tentang topik yang sama.
sumber
Jika Anda ingin memindahkan lebih dari SATU atau DUA posisi ...
... pilihan terbaik adalah menekan
ESC
, bergerak, dan kembali ke mode memasukkan lagi.Tidak ada gunanya membuat pemetaan seperti
<C-h>
bergerak ke kiri dan kemudian mulai memukulnya berkali-kali ... sebagai pengguna vim Anda tidak seharusnya menekan tombol yang sama beberapa kali untuk mencapai gerakan cerdas.(Jika
ESC
kunci tidak dekat dengan jari Anda, itu akan menjadi pilihan yang baik untuk membuat pemetaan untuk itu.)Jika Anda ingin memindahkan satu atau dua posisi pada mode penyisipan ...
... pilihan yang baik adalah mendefinisikan beberapa gerakan menggunakan
<Leader>
kunci Anda :(Saya menggunakan
,
sebagai<Leader>
kunci karena rasanya dekat dan nyaman untuk jari saya)sumber
Jika Anda hanya perlu memodifikasi sejumlah kecil teks atau kata, Anda dapat menggunakannya
<Ctrl-O>h/j/k/l
.<Ctrl-O>
membawa Anda kembali ke mode Normal hanya untuk perintah itu, dan kemudian menjatuhkan Anda kembali ke mode insert, sehingga menghemat sejumlah penekanan tombol, jika Anda perlu masuk ke mode normal untuk gerakan kecil.Ref: 1. http://vim.wikia.com/wiki/Use_Ctrl-O_instead_of_Esc_in_insert_mode_mappings
sumber