Dalam vim, bagaimana cara membuat tombol panah kiri dan kanan mengubah baris?

25

Di vim, tombol panah saya berfungsi dengan benar, bergerak ke atas, ke bawah, ke kiri, dan ke kanan seperti yang diharapkan, dengan satu pengecualian. Di awal baris, panah kiri tidak melakukan apa-apa, alih-alih pergi ke karakter terakhir dari baris sebelumnya. Di akhir baris, panah kanan tidak melakukan apa-apa, alih-alih pergi ke karakter pertama dari baris berikutnya.

Apakah ada pengaturan yang bisa saya ubah untuk mendapatkan perilaku yang saya harapkan?

nohat
sumber
4
Saya pikir sebagian besar pengguna VIM akan merekomendasikan agar Anda tidak menggunakan tombol panah.
user12612
@ user12612 mengapa tepatnya?
luchonacho
@luchonacho Saya pikir idenya adalah bahwa pengguna VIM yang serius akan berpendapat bahwa jari-jari Anda tidak boleh meninggalkan baris beranda keyboard Anda untuk menavigasi di mana Anda berada dalam teks Anda.
nohat

Jawaban:

26

Setelah beberapa Googling lebih lanjut, saya menemukan jawabannya adalah menggunakan whichwrapopsi.

Saya menambahkan baris berikut ke .vimrc saya:

set whichwrap+=<,>,[,]

The <dan >pilihan mengaktifkan pengaturan yang diinginkan untuk mode normal dan [dan ]mengaktifkan pengaturan yang diinginkan untuk mode insert.

nohat
sumber
1
(Mengapa ini bukan pengaturan default pada sistem saya adalah sebuah misteri)
nohat
Ini sepertinya tidak mempengaruhi perilaku h j k lkunci.
Sebastián Grignoli
Benar, ada nilai lain untuk h dan j. Lihat :help 'whichwrap'atau vimhelp.appspot.com/options.txt.html#%27whichwrap%27 . k dan l tidak benar-benar berlaku karena kita berbicara tentang perilaku kiri / kanan di awal / akhir baris.
Adam Monsen
9

Tambahkan ini ke .vimrc Anda:

set whichwrap+=<,>,h,l,[,]
GPU
sumber
0

Ini adalah perilaku default - Anda selalu dapat menggunakan Home dan End untuk melompat ke awal dan akhir garis.

salmonmoose
sumber
5
OP ingin mengubah perilaku default. Itulah mengapa dia bertanya di sini sejak awal.
akira
0

Anda dapat mengatasi ini dengan menggunakan w dan b yang akan membungkus garis.

Hasen
sumber
Tetapi b membawa Anda karakter pertama dari kata terakhir dari baris sebelumnya. Apakah benar-benar tidak ada cara untuk membuat panah kiri bergerak ke karakter terakhir dari baris sebelumnya ketika pada karakter pertama dari sebuah baris?
nohat
Ya saya tahu, itu bukan solusi nyata.
hasen