Ответ 1
Также вы можете использовать <C-o> o
комбо
При редактировании кода мне всегда нужна эта функция: создайте новую строку после текущей строки, переместите курсор на новую строку (сохранение curent indention!) и оставайтесь в нормальном режиме. Например (предполагая, что █ является курсором):
function a() {
foon█tion()
}
После ввода команды мне нужно сделать следующее:
function a() {
foonction()
█
}
Я могу добиться такого же эффекта, если я, например, нажимаю <Enter><Esc>
, находясь в режиме Вставки с курсором в конце строки. Команда o
также действует аналогично, но она удаляет отступ после выхода из режима вставки. Поэтому мне нужно одно нажатие, чтобы вставить одну строку вниз.
inb4 nmap: Я знаю, как сопоставить команду для выполнения такой вещи, но мне интересно, есть ли стандартный способ сделать это.
Также вы можете использовать <C-o> o
комбо
Нет такого ключа, но получается, что мы можем это сделать - без вдавливания - с четырьмя нажатиями клавиш: :pu_<Enter>
Это вопрос vim faq, где ответ заключается в использовании команды Ex :put
:
12,15. Как вставить пустую строку выше/ниже текущей строки без ввода режима вставки?
Вы можете использовать команду ": put" ex для вставки пустых строк. Например, попробуйте
:put =''
:put! =''
Для получения дополнительной информации прочитайте: help: put
:put
помещает текст из данного регистра после текущей строки и оставляет вас в нормальном режиме. :put!
помещает текст в строку над текущей строкой.
В приведенных выше примерах используется регистр expression
=
, чтобы отправить пустую строку в команду put
. Мы можем обрезать это, используя регистр черных дыр vim, _
: :put _
.
Наконец, это может быть сокращено до: :pu_<Enter>
и :pu!_<Enter>
.
См. также: :help registers
.
Наконец, обратите внимание, что это также особенность плагина Tim Pope без изменений.
Из необработанного README:
Имеются сопоставления строк.
[<Space>
и]<Space>
добавить новые строки до и после строки курсора.[e
и]e
обменивать текущую строку с тем, что находится выше или ниже.