Команда Vim для установки пустой строки в нормальном режиме

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

Ответы

Ответ 1

:nnoremap <silent> [<space> :pu! _<cr>:']+1<cr>
:nnoremap <silent> ]<space> :pu _<cr>:'[-1<cr>

Пояснение:

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

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

Ответ 2

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

:normal O

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

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

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

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

Ответ 3

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

:map <c-j> o<esc>

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

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

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

:map <c-k> O<esc>

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

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

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

Ответ 4

dd на пустой строке, p для его восстановления, а затем p, где вы хотите, чтобы пустая строка (ы)