web-dev-qa-db-ja.com

vimに空白行を挿入しますか?

Vimで編集するときに、現在の行の下または上に空白行を挿入する必要があることがよくあります。 oOはこれを行いますが、その後、挿入モードに切り替わり、煩わしいです。これを行う組み込みコマンドはありますか?これは通常モードのままです?

26
Andrew Ferrier

Tim Popeの nmpaired plugin と私自身の 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>
10
Ingo Karkat

私はこれらを使用しています

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

私の.vimrc 長年。

Enterを押すと現在の下に空白行が挿入され、Shift + Enterを押すと上に挿入されます。

27
Mr Shunz

上または下に行を挿入するさらに別の方法:

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

Romainl氏とShunz氏の解決策は、カーソルを新しく挿入された行に移動しますが、これとIngo Karkatの解決策は、カーソルを同じ位置に保ちます。

7
taketwo

いいえ、そのための組み込みコマンドはありません。

これらのマッピングはあなたが望むことをします:

nnoremap <leader>o o<Esc>
nnoremap <leader>O O<Esc>
1
romainl