Vimで行を分割するコマンドはありますか?


15

Vimでは、Jキーは2つの行を結合します。(カーソル位置などで)改行で行を分割するための、同様の組み込みのキーの組み合わせはありますか?

あるいは、それを行うためのキーの組み合わせを定義する最も堅牢な方法は何ですか(挿入モードではなく通常モードで)?


回答:


16

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

で分割したいときは<Space>、そうしますr<CR>

---編集---

@ keith-nicholasのコメントで、この質問を思い出しました。FWIWその間、うまくいけば「ユニバーサル」な方法を思いついた:

function! BreakHere()
    s/^\(\s*\)\(.\{-}\)\(\s*\)\(\%#\)\(\s*\)\(.*\)/\1\2\r\1\4\6
    call histdel("/", -1)
endfunction

nnoremap <key> :<C-u>call BreakHere()<CR>

4
使い方r<CR>は簡単です。ありがとう!
Marcelo

1
それは素晴らしいことです!挿入して行を挿入するのに非常に迷惑なもの
キース・ニコラス

私が見つかりました。s<CR>一方、インデントを保持r<CR>しません。
toxefa

5

a Enter Escカーソルの右側i Enter Escに分割するか、左側に分割します。


1
それだ。改行を1つ挿入するだけです。または、r + <return>を使用して、カーソルの下の文字を改行で置き換えます。1文字のコマンドがあればいいのですが、私の知る限りではありません。
Tonny 2013年

2

Vimで行を分割する最も簡単な方法は、通常モードのコマンドですgq(通常モードまたはビジュアルモードで両方の文字をすばやく連続して入力します)。

  • ビジュアルモードでは、選択されているものはすべて分割されます。
  • 通常モードでgqは、モーションが続きます。

たとえば、gql1行を現在設定されている幅に分割します。分割線の幅を現在の設定とは異なるように設定するには、次を使用できます

:set textwidth=<n>

ここで、nは1行に必要な文字数(例:10)で、終了したら通常の幅に戻します。

この情報は、モーションを使用して通常モードでラインを結合および分割する方法を示すKholidfuのYoutubeビデオから入手しました:Vimチュートリアル-ラインの結合および分割


1

マップを使用して独自に定義できます。たとえばzをコマンドとして定義するには:

:map z i<CTRL+m>

0

マクロを記録できます。

通常モードで「q +」と入力して、レコードを開始します。記録するマクロ「i」を押します。次に、もう一度「q」を押して録音を停止します。

マクロを使用するには、通常モードに移動して「@ + letter」と入力します。

私の場合、「b」を使用してこのマクロを使用しました。通常モード「qbiq」でタイプを記録し、通常モード「@b」でタイプを使用します

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