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


25

vimで編集するとき、現在の行の下または上に空白行を挿入する必要があることがよくあります。oそしてOこれを行うが、彼らはその後に迷惑です挿入モードへ切り替わります。これを行うための組み込みコマンドがあり、通常モードのままになりますか?

回答:


10

どちらのティム教皇の健常プラグインだけでなく、私自身の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>

今はこれを使用しているので、これを「正しい」ソリューションとしてマークしました。しかし、ここでの答えはすべて素晴らしいです。
アンドリューフェリエ14年

すばらしいヒント。ただし、地図を作成すること <Space>oをお <Space>O勧めします。
-simlev

26

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

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

私の中.vimrcの年のために。

Enterキーを押して現在の行の下に空白行を挿入し、Shift + Enterキーを押して現在の行の下に挿入します。


これらの答えはすべて良いものですが、最も簡単な解決策であるため、これを正しいとマークしています。
アンドリューフェリエ

とても簡単!これは受け入れられた答えであるはずです!
Sheharyar

Enterキーを押したときにカーソルを動かしたくない場合kは、最初のマップjの最後と2番目のマップの最後に置きます。
ゾンド

1
Shift-EnterのマッピングはGUIバージョンのvimでのみ機能し、ターミナルバージョンでは機能しないことに注意してください。 stackoverflow.com/questions/16359878/vim-how-to-map-shift-enter
ishmael 16

7

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

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

romainlとMr Shunzからのソリューションはカーソルを新しく挿入された行に移動しますが、これとIngo Karkatからの行はカーソルを同じ場所に保持します。


1

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

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

nnoremap <leader>o o<Esc>
nnoremap <leader>O O<Esc>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.