Команда разделения разделов Vim

Возможный дубликат:
Как вставить строку, где курсор не входит в режим вставки в Vim?

В vim, J присоединяет следующую строку к текущей строке. Есть ли аналогичная одноключевая (или относительно короткая) команда для разделения строки на заданную позицию курсора? Я знаю, что это делается с помощью простого макроса, но похоже, что существует команда J -command, должна быть аналогичная функция. Я попытался найти его, но не могу найти ответ.

Ответ 1

Я не думаю, что для этого есть одна ключевая команда. Лучшее, что вы можете сделать с помощью акции vim, вероятно, i Enter Esc.

Ответ 2

r Enter, в то время как в пробеле это сделает. Это два нажатия клавиш.

Ответ 3

Мое решение состояло в том, чтобы переназначить ключ K, так как я никогда не использую действие по умолчанию (найдите слово под курсором с помощью "man" ), а мой предыдущий редактор использовал Alt + j и Alt + k для объединения и разделения строк, соответственно.

:nnoremap K i<CR><Esc>

Это приводит к тому, что эти три раздражающие нажатия клавиш превращаются в один.

Вероятно, более сложный способ также исключить любые конечные пробелы, но я предпочитаю лишать все конечные пробелы при записи.

Ответ 4

Нет. Я теперь достаточно читал ответы, чтобы сделать вывод, что такой команды нет.

Легкий ответ: Нажатие 'Enter' в то время как вставки будет делать это; но вы правы, там должен быть ключ к нему в командном режиме. Я тоже подумал.

Поскольку у каждого есть любимое обходное решение, я поделюсь с вами. Предполагается, что я сделаю все, чтобы избежать необходимости использовать клавишу Esc.

ylprX... где "X" - вставленный символ, который может даже быть новой строкой.

Итак, 'yl' yank на char справа, 'p' = вставить char, 'r' заменяет это char; то просто введите новый char. Вот как я ненавижу использование Escape.

(Это было "l", как в "move right", BTW)

Ответ 5

Старый поток, но я не использую "K" для поиска страницы man или любой другой магии. Поэтому у меня есть это сопоставление в моем .vimrc:

map K i<Enter><Esc>

Я понял, что, поскольку "J" присоединяется, "K" может быть krack или что-то еще.:)

Ответ 6

Вы можете разделить строки, если вы можете создать регулярное выражение для местоположения, чтобы добавить split. Например, если вы хотите разделить строки в каждой точке с запятой, вы можете использовать следующую подстановку:

% s/;/^ V ^ т/г

к большому эффекту

Ответ 7

Ответ Jed наиболее полезен. Я хотел бы добавить, что мне нужен "альтернативный вариант управления", т.е. Control-Q: % S/;/^ д ^ т/г