Автоматически перейти к следующей строке в VIM - PullRequest
28 голосов
/ 04 апреля 2010

Одно неприятное поведение в vim состоит в том, что когда я перемещаю курсор вправо или влево (соответственно «l» или «h)», и я нахожусь в конце или начале строки, мой курсор не перемещается в первый столбец следующей строки или последнего столбца предыдущей строки.

Есть ли способ изменить это поведение?

Ответы [ 2 ]

28 голосов
/ 04 апреля 2010

Вы можете использовать настройку whichwrap, чтобы сделать h и l обтеканием начала и конца отдельных строк:

set whichwrap+=h,l

Тем не менее, документация Vim рекомендует против этого, возможно, потому, что у него могут быть неожиданные побочные эффекты (например, разрывы плагинов или изменение работы общих сопоставлений клавиш).

В качестве альтернативы, вы можете делать то, что рекомендовал Матти Вирккунен:

set whichwrap+=<,>,[,]

Это оставляет h и l их поведением по умолчанию, но позволяет клавишам со стрелками влево и вправо переходить вокруг строк. (Это то, что я делаю, и это хорошо работает.)

Возможно, вы захотите взглянуть на настройку backspace, чтобы управлять тем, как Backspace, Delete, Control + W и Control + U работают в режиме вставки. Я установил мой так:

set backspace=indent,eol,start

Это позволяет мне вернуться практически ко всему.

Подробнее см. В следующих разделах справки Vim:

:help 'whichwrap
:help 'backspace
9 голосов
/ 04 апреля 2010

Поместите в ваш .vimrc следующее:

set whichwrap+=<,>,[,]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...