Вставить пустые строки без входа в режим вставки - PullRequest
11 голосов
/ 03 июля 2010

Я часто подпрыгиваю на o или O и ctrl {, чтобы вставить пустые строки и выйти из режима вставки.

Думая, что должен быть более простой способ, и надеясь сохранить мою позицию курсора, я взломал вместе эти небрежные макросы:

map <Leader>O :let cursorpos = getpos(".")<CR>:i<CR><CR>.<CR>:let cursorpos[1] = cursorpos[1] + 1<CR>:call setpos('.', cursorpos)<CR>
map <Leader>o :let cursorpos = getpos(".")<CR>:a<CR><CR>.<CR>:call setpos('.', cursorpos)<CR>

Однако это не учитывает диапазоны. Было бы неплохо иметь возможность пройти 5 \ O и получить 5 пробелов выше моей текущей строки.

Любые предложения о том, как я могу исправить это, чтобы разрешить диапазоны и при этом вернуться к исходной позиции курсора?

Ответы [ 3 ]

12 голосов
/ 03 июля 2010

Вы можете использовать :call append(linenumber, repeat([''], 5)).Он не будет перемещать курсор.

9 голосов
/ 05 июля 2010

Плагин unimpaired добавляет сопоставления, которые делают то, что вы хотите.Вы можете вставить пустую строку над курсором с помощью [<space> или под курсором с помощью ]<space>.Оба этих сопоставления могут быть дополнены счетом.

1 голос
/ 02 ноября 2013

Я добавил это к своему .vimrc

"create new line below current line without leaving normal mode or moving cursor
noremap - m`o<Esc>``
"create new line above current line without leaving normal mode or moving cursor
noremap _ m`O<Esc>``

Я предпочитаю это решение по нескольким причинам:

  • Я обычно не использую - или _ клавиш в обычном режиме, и они расположены на одной и той же физической клавише на моей клавиатуре.
  • Просто кажется, что установка плагина для этого является излишним.Я избегаю загрузки плагинов для простых вещей, поскольку они вводят в мою среду новый код, который я еще не полностью понимаю или которому я не доверяю, и это может помешать другим настройкам или плагинам.
  • Я попробовал решение от автора этоговопрос находится в его комментарии под принятым ответом, но после его использования команда . делает странные и тревожные вещи.
  • Я обычно предпочитаю нажимать . несколько разпередавая числовой аргумент, чтобы вместо того, чтобы сидеть и считать вещи на пальцах, я просто продолжал нажимать . , пока он не выглядел правильно (меньше концептуальной визуализации и более реального видения).К сожалению, даже это решение не работает так, как я хочу, с помощью команды . .Однако при сопоставлении - и _ их можно нажимать повторно для получения одного и того же эффекта.Просто позор, что он не ближе к домашнему ряду ...

ВНИМАНИЕ: Маркировка клавиши ` влияет на прыжоксписок.Вы можете использовать любой другой знак, если это доставляет вам удовольствие ++

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