Вставка пустой строки в Vim?

Я довольно часто нахожу, что мне нужно вставить пустую строку ниже или выше текущей строки при редактировании в vim. o и O сделает это, но они впоследствии переключаются в режим вставки, что раздражает. Есть ли встроенная команда для этого, которая останется в нормальном режиме?

21
задан Andrew Ferrier 2013-06-13 17:18:20
источник

4 ответов

оба Тима Поупа unimpaired плагин а также мой собственный плагин LineJuggler обеспечить [<Space> и ]<Space> сопоставление, чтобы добавить [count] пустые строки над / под текущей строкой.

в принципе, все сводится к следующему:

nnoremap <silent> ]<Space> :<C-u>put =repeat(nr2char(10),v:count)<Bar>execute "'[-1"<CR>
nnoremap <silent> [<Space> :<C-u>put!=repeat(nr2char(10),v:count)<Bar>execute "']+1"<CR>
8
отвечен Ingo Karkat 2013-06-13 17:25:19
источник

я использовал эти

map <Enter> o<ESC>
map <S-Enter> O<ESC>

в своем .vimrc в течение многих лет.

пресс Enter вставить пустую строку ниже текущей, Shift + Enter вставить выше.

24
отвечен Mr Shunz 2013-06-13 17:51:28
источник

еще один способ вставки строк выше или ниже:

nnoremap <Enter> :call append(line('.'), '')<CR>
nnoremap <S-Enter> :call append(line('.')-1, '')<CR>

обратите внимание, что решение из romainl и Mr Shunz переместит курсор на только что вставленную строку, в то время как это, а также от Ingo Karkat будет держать курсор в том же месте.

7
отвечен taketwo 2013-06-13 17:59:45
источник

нет, для этого нет встроенной команды.

эти отображения делают то, что вы хотите:

nnoremap <leader>o o<Esc>
nnoremap <leader>O O<Esc>
1
отвечен romainl 2013-06-13 17:27:50
источник

Другие вопросы vim vi

X