В vim, как заставить стрелки влево и вправо изменить строку?


25

В vim мои клавиши со стрелками работают правильно, двигаясь вверх, вниз, влево и вправо, как и ожидалось, за одним исключением. В начале строки стрелка влево ничего не делает, вместо перехода к последнему символу предыдущей строки. В конце строки стрелка вправо ничего не делает, вместо перехода к первому символу следующей строки.

Могу ли я изменить настройки, чтобы получить ожидаемое поведение?


4
Я думаю, что большинство пользователей VIM рекомендуют не использовать клавиши со стрелками.
user12612

@ user12612 почему именно?
Лучоначо

@luchonacho Я думаю, что идея заключается в том, что серьезные пользователи VIM будут считать, что ваши пальцы не должны покидать домашний ряд клавиатуры, чтобы перемещаться туда, где вы находитесь в своем тексте.
nohat

Ответы:


26

После некоторого дальнейшего поиска, я обнаружил, что ответ заключается в использовании whichwrapопции.

Я добавил следующую строку в мой .vimrc:

set whichwrap+=<,>,[,]

<И >опция включить нужную настройку для нормального режима и [и ]включите нужную настройку для режима вставки.


1
(Почему это не было настройкой по умолчанию в моей системе - загадка)
nohat

Похоже, это не влияет на поведение h j k lклавиш.
Себастьян Гриньоли

Правильно, есть другие значения для h и j. Смотрите :help 'whichwrap'или vimhelp.appspot.com/options.txt.html#%27whichwrap%27 . k и l на самом деле не применяются, так как мы говорим о левом / правом поведении в начале / конце строк.
Адам Монсен


0

Это поведение по умолчанию - вы всегда можете использовать Home и End, чтобы перейти к началу и концу строки.


5
ОП хочет изменить поведение по умолчанию. Вот почему он (и) спросил здесь, в первую очередь.
Акира

0

Вы можете обойти это, используя w и b, которые будут переносить строки.


Но b принимает вас первым символом последнего слова предыдущей строки. Неужели нет способа заставить стрелку влево перейти к последнему символу предыдущей строки, когда она находится на первом символе строки?
nohat

Да, я знаю, это не настоящее решение.
hasen
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.