Команда Vim для вставки пустой строки в обычном режиме - PullRequest
17 голосов
/ 20 июля 2011

Есть ли в Vim какая-либо команда, которая будет выполнять те же действия, что и o или O (вставлять пустую строку до / после текущей), но которая также не переключается в режим вставки?

Ответы [ 4 ]

16 голосов
/ 20 июля 2011
:nnoremap <silent> [<space> :pu! _<cr>:']+1<cr>
:nnoremap <silent> ]<space> :pu _<cr>:'[-1<cr>

Объяснение:

  • :put вставит регистр также ниже.(:pu! выше)
  • :pu _ вставит регистр черной дыры, который является пустым, поэтому мы получаем пустую строку
  • '[ и '] метки устанавливаются в начале иконец измененного или выдернутого текста.
  • :'[ переместит курсор на начальную строку последнего изменения (в данном случае вставку)
  • :'[-1 переместит '[ но еще на одну строчку

Если вы предпочитаете плагин, то я предлагаю Тима Попа unimpaired.vim .Который снабжает эти отображения, но также будет учитывать.Плагин также имеет много других приятных сопоставлений.

0 голосов
/ 06 мая 2015

вы можете попробовать что-то вроде этого:

:map <c-j> o<esc>

это: когда вы нажимаете control + j , он добавит строку ниже (и перейдет в режим вставки), а затем переключится обратно в обычный режим, если вы хотите остаться в той же строке, что и раньше просто добавьте k в конце, примерно так:

:map <c-j> o<esc>k

Я также добавил control + k , чтобы добавить строку перед той, на которой я стою

:map <c-k> O<esc>

и так же, как и прежде, вы можете добавить j в конце, чтобы остаться на той же строке:

:map <c-k> O<esc>j

Если вам нужно или хотите что-то более продвинутое, вы можете проверить эти сообщения: Быстрое добавление и удаление пустых строк или Вставка новой строки без перехода в режим вставки

0 голосов
/ 18 мая 2012

В режиме вставки:

:normal O

Из встроенного руководства vim:

Выполнение команд в обычном режиме. Это позволяет выполнять команды в обычном режиме, набранные в командной строке. {} команд выполнены так, как они напечатаны. Для отмены все команды отменены все вместе. Выполнение останавливается при возникновении ошибки. Если [!], сопоставления не будут использоваться. {команды} должны быть завершить команду. Если {команды} не заканчивают команду, последний будет прерван как если бы или был напечатан.

http://vimdoc.sourceforge.net/htmldoc/various.html#:normal

Я получил подсказку: https://unix.stackexchange.com/a/16452/7914

0 голосов
/ 08 марта 2012

dd на пустую строку, p, чтобы восстановить его, а затем p, где вы хотите, чтобы пустые строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...