2010-04-04 4 views
26

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

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

+1

Это не совсем программирования вопрос, но ... –

+0

... но это вопрос о «программных средств, обычно используемых программисты». :) (по общему признанию, это не «проблема, которая уникальна для разработки программного обеспечения»). – lindhe

+1

'set nocompatible' отключил эту функцию в моей конфигурации' vim' – Paschalis

ответ

24

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

set whichwrap+=h,l 

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

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

set whichwrap+=<,>,[,] 

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

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

set backspace=indent,eol,start 

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

Для получения дополнительной информации см эти темы в помощи Vim:

:help 'whichwrap 
:help 'backspace 
+0

Можете ли вы объяснить, что они делают? (конкретно, что делает '<', '>', '[' и ']' mean?) –

+0

Это версия браузера ': help 'whichwrap': https://vimhelp.appspot.com/options.txt. HTML #% 27whichwrap% 27 –

8

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

set whichwrap+=<,>,[,] 
+0

Можете ли вы объяснить, что это делает? –

+0

@QPaysTaxes: параметр whichwrap определяет, какие клавиши будут наматываться на следующую/предыдущую строку при нажатии, а затем символ ссылается на клавиши курсора в нормальном режиме и режиме вставки соответственно. Вы можете добавить, например. 'h, l', чтобы вы могли обернуть клавиши перемещения vim, если хотите. –

Смежные вопросы