私は/* ... */
(C ansiのコメント)が好きなので、ここが私のトリックです。もちろん、さまざまなケースで使用するためにそれを適応させることができます。
/ * ... * /でコメント
テキストを選択します(最初に移動し、ビジュアルブロックを開始し、でジャンプします}
):
<c-V>}
選択に適用するコマンドを入力してください
:norm i/* <c-v><esc>$a */
コマンドは次のようになります。 :'<,'>norm i /* ^[$a */
詳細については、(i *)を参照してください。
/ * ... * /のコメントを外します
テキストを選択します(以前と同じように、または他の方法で)。
<c-V>}
選択に適用するコマンドを入力してください
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
コマンドは次のようになります。 :'<,'>norm :s-\s*/\*\s*-^M$bbld$
詳細については、(ii *)を参照してください。
結果
効果は行ごとのコメントです。
Comment block
Comment block
Comment block
になる(およびその逆):
/* Comment block */
/* Comment block */
/* Comment block */
入力するのがたくさんあるので、として保存するかmap
、@reg
に保存することをお勧めします.vimrc
。あなたは、単一のを好む場合/*
と*/
、全ブロックに、以下を使用します。
単一の/ * * /ブロック全体でコメント
qc
コメントを付けるには、たとえば、段落の最初にを付けて記録し、レジスタに保存します。
v}di/* */<esc>hhhp
そして、忘れずq
に、記録を終えてください。
詳細については、(iii *)を参照してください。
ブロックから単一の/ * * /のコメントを外します
レジスタに保存します@u
。カーソルをブロック内の任意の場所に置きます。
?/\*<enter>xx/\*/<enter>xx
q
コマンドを終了してレジスタを保存します。
詳細については、(iv *)を参照してください。
結果
効果は複数行の単一コメントです:
Comment block
Comment block
Comment block
になる(およびその逆):
/* Comment block
Comment block
Comment block */
解説
(i *)norm
選択したすべての行に同じコマンドを繰り返し適用することで機能します。コマンドは単にを挿入し/*
、その行の終わりを見つけて、*/
:norm i/* <c-v><esc>$a */
(ii *)norm
すべての行で検索/置換を繰り返すためにも使用されます。spaces /* spaces
何も検索せずに置き換えます。その後、行の終わりを見つけ、2つの単語を戻し、文字を1つ右に移動し、最後まで削除します。
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
(iii *)で段落を選択しv}
、削除して、コメントを挿入して開閉し、中央に移動して、削除したブロックを貼り付けます。
v}di/* */<esc>hhhp
(iv *)途中のどこでも、aを後方に検索して/*
削除します。前方を検索し、*/
それを削除します。
?/\*<enter>xx/\*/<enter>xx