Команда 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, где вы хотите, чтобы пустая строка (ы)