Подтвердить что ты не робот

Вставьте новую строку без входа в режим вставки, vim

Я хочу вставить новые строки в обычном режиме в vim с помощью Shift-Enter и Ctrl-Enter. Я пробую некоторые решения и микширующие решения от Vim Wikia - вставьте новую строку без ввода режима вставки, но Shift-Enter и Ctrl-Enter не ответили:

" put a new line before or after to this line
nnoremap <S-CR> m`o<Esc>``
nnoremap <C-CR> m`O<Esc>``

" reverse J command
nnoremap <C-J> vaW<Esc>Bi<CR><Esc>k:s/\s\+$//<CR>$
4b9b3361

Ответ 1

Моя альтернатива использует oo (соответственно oo), чтобы вставить новую строку под (через) через текущий через это сопоставление: nmap oo o<Esc>k (соответственно nmap OO O<Esc>j)

Ответ 2

Из-за того, что ввод с клавиатуры обрабатывается внутри, к сожалению, сегодня это вообще невозможно. (Однако этот конкретный случай должен работать в GVIM.) Некоторые комбинации клавиш, такие как Ctrl + non-alphabetic, не могут быть сопоставлены, а Ctrl + letter против Ctrl + Shift + letter не могут отличаться (Если ваш терминал не отправляет для него отдельный код termcap, чего большинство не делает.) В режиме вставки или командной строки попробуйте ввести комбинацию клавиш. Если ничего не происходит/вставлено, вы не можете использовать эту комбинацию клавиш. Это также относится к <Tab>/<C-I>, <CR>/<C-M>/<Esc>/<C-[> и т.д. (Единственное исключение - <BS>/<C-H>.) Это известная болевая точка и предмет различных дискуссий на vim_dev и IRC-канале #vim.

Некоторые люди (прежде всего Пол ЛеоНерд Эванс) хотят это исправить (даже для консоли Vim в терминалах, которые поддерживают это), и выдвинули различные предложения.

Но на сегодняшний день никаких патчей или добровольцев еще не появилось, хотя многие выразили желание иметь это в будущем выпуске Vim 8.

Ответ 3

Вытащите пустую строку и вставьте ее с помощью Shift:

Начиная с курсора на пустой строке:

yy + (shift + p)

"yy" возвращает строку, а "shift + p" вставляет ее ниже, не входя в режим вставки.

Ответ 4

Я использую: s/\n/\ r\r/g (подставляем новую строку с двумя символами новой строки, которая совпадает с "o" ).

Ответ 5

Это то, что я использую:

nmap <CR> :a<CR><CR>.<CR>

Я пробовал nmap <CR> o<Esc>, но сделал UI глюком, поскольку он переключился на режим вставки и обратно.

Ответ 6

Вы можете использовать хак для этого.

В режиме редактирования вы можете использовать p для вставки текущего буфера обмена. Поскольку o добавляет новую строку, вы можете использовать o<ESC>ddp, чтобы добавить новую строку под курсором; оттуда p добавит новую строку, пока вы не удалите что-то еще.