Как разорвать строку в vim в обычном режиме? - PullRequest
33 голосов
/ 18 октября 2010

Я хотел бы разбить строку (в месте расположения курсора) на две строки, не выходя из обычного режима (вход в режим вставки или режим командной строки). Возможно ли это?

В настоящее время я попадаю в нужное место и нажимаю «i», чтобы войти в режим вставки, «enter», чтобы разбить строку на две части, затем «esc», чтобы вернуться в обычный режим.

Я не пытаюсь установить максимальную длину строки или использовать какой-либо синтаксис или что-то подобное. Я просто хочу разбить одну строку на две строки, не выходя из нормального режима. 'J' соединяет строку, на которой находится курсор, со строкой под ней, что удобно. Я хочу наоборот - разбить одну строку на две с помощью одной команды.

Ответы [ 7 ]

36 голосов
/ 18 октября 2010

Попробуйте это:

:nnoremap <NL> i<CR><ESC>

, затем просто нажмите Ctrl-J, когда вы хотите разбить строку.

28 голосов
/ 18 октября 2010

Я не знаю ни одной ключевой команды, но часто я нажимаю «r», а затем «Enter», чтобы разбить строку.

"r" заменяет текущий символ под курсором, не переходя в режим вставки. Это может быть не то, что вы хотите, если вы не хотите заменить персонажа ...

18 голосов
/ 17 ноября 2010

установить курсор в положение и ...

  r<Enter>
13 голосов
/ 28 мая 2014

Аналогично другим ответам, но не заменяет текущий символ.

R<enter>

Нет необходимости в переопределении.

2 голосов
/ 18 октября 2010

За этот повторяющийся вопрос: Как вставить разрыв строки, когда курсор не входит в режим вставки в Vim?

Изнутри vim введите:

:map g i[Ctrl+V][Enter][Ctrl+V][Esc][Enter]

Это сопоставляет клавишу G с макросом I [Enter] [Escape]

2 голосов
/ 18 октября 2010

Насколько я знаю, это невозможно без входа в режим вставки. Однако вы можете макрос этого с чем-то вроде (замените Z на любой ключ, который вы хотите использовать)

nmap Z i<cr><esc>k$

в основном это сопоставляет ключ 'Z', чтобы войти в режим вставки 'i', вставить возврат каретки '<cr>', выйти из режима вставки '<esc>', подняться на строку 'k' и, наконец, перейти к конец строки '$'

0 голосов
/ 09 февраля 2015

Вы можете использовать запись.Поместите курсор туда, где вы хотите вставить разрыв строки.Введите qa, чтобы начать запись в регистр a (вы можете использовать другой регистр, кроме a, если хотите. Затем введите i (переключиться в режим вставки), Return (вставить новую строку), escape (выход из режима вставки), q (завершение записи.) Теперь вы можете вызвать эту последовательность клавиш, набрав @a (где a - это номер регистра, который вы использовали при запускезаписи, поэтому просто продолжайте перемещать курсор туда, где вы хотите вставить новую строку, и наберите @a.

...