Я довольно часто нахожу, что мне нужно вставить пустую строку ниже или выше текущей строки при редактировании в vim. o
и O
сделает это, но они впоследствии переключаются в режим вставки, что раздражает. Есть ли встроенная команда для этого, которая останется в нормальном режиме?
Вставка пустой строки в Vim?
8
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 2022-12-02 19:35
я использовал эти
map <Enter> o<ESC>
map <S-Enter> O<ESC>
в своем .vimrc
в течение многих лет.
пресс Enter вставить пустую строку ниже текущей, Shift + Enter вставить выше.
24
отвечен Mr Shunz 2022-12-02 21:52
еще один способ вставки строк выше или ниже:
nnoremap <Enter> :call append(line('.'), '')<CR>
nnoremap <S-Enter> :call append(line('.')-1, '')<CR>
обратите внимание, что решение из romainl и Mr Shunz переместит курсор на только что вставленную строку, в то время как это, а также от Ingo Karkat будет держать курсор в том же месте.
7
отвечен taketwo 2022-12-03 00:09
нет, для этого нет встроенной команды.
эти отображения делают то, что вы хотите:
nnoremap <leader>o o<Esc>
nnoremap <leader>O O<Esc>
1
отвечен romainl 2022-12-03 02:26
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]