3

私は次のようなコメントのブロックを扱っています:

//this is comment 1
//this is comment 2
//this is comment 3
//this is comment 4

私はそれを次のように見せたいと思います:

//this is comment 1

//this is comment 2

//this is comment 3

//this is comment 4

コマンドモードのままで、選択した行でこの変換を行うためのVimショートカットはありますか?

4

5 に答える 5

4

コマンドを使用できます:substitute。行の最初の任意の場所にカーソルを置きます。

:,+3s/$/\r

これにより、各行の最後に追加の改行が挿入されます。

このコマンドを使用することもできます:global。最初の行のどこかにカーソルを置いて、次のコマンドを実行します。

:,+3g//norm o

次の4行のそれぞれについて、これはoNormal-modeコマンドを実行し、新しい空白行を追加します。

どちらのコマンドでも、,+3 プレフィックスはコマンドの範囲です。を参照してください:help range。簡単に言うと、コンマは範囲の開始行と終了行のアドレスを区切ります。2つのアドレスの前者を省略すると、現在の行が使用されます。アドレスは、現在の+3 行から3行下の行を参照します。

,+3これらのコマンドのいずれかに 範囲を指定するのではなく、たとえば、VNormal-modeコマンドを使用して、必要なすべての行にVisualブロックを作成できます。次に、コマンドを開始するために入力 すると、ビジュアルブロックを指定する範囲が自動的に入力され、または :で始まる2つのコマンドのいずれかを入力できます 。sg

:'<,'>s/$/\r
于 2012-09-12T02:18:55.777 に答える
1

マクロを使用できます。

qao<esc>jq

次に、を使用3@aして、最後の行にマクロを3回適用します。

どこ:

qa    "Start recording a macro named a
o     "Insert new line under current line
<esc> "Exit insert mode
j     " Move down next line
q     " end macro
于 2012-09-12T02:21:51.427 に答える
1

で視覚的な選択を選択してくださいV

次に、正規表現置換を実行して、1つの改行を2つに置き換えます

:s/\n/\r\r/g

于 2012-09-12T02:24:11.020 に答える
1

コマンドを使用できます

:g/^/pu_

バッファ全体(デフォルト)または選択した行範囲。

于 2012-09-12T22:04:46.083 に答える
0

必要な行を選択しますV

次に、入力:してs/\ze/\r

于 2012-09-12T14:46:23.600 に答える