Vim では、通常、一連のコマンドを何度か繰り返したいと思います。たとえば、5行コメントしたい場合は、次を使用します
I//<Esc>j
.j.j.j.j
最後の「.j」部分を数回繰り返す方法はありますか?
これを行う1つの方法は、キーシーケンスをマクロに割り当ててから、マクロを1回実行してから、@@
run-last-macroコマンドを実行することです。例えば:
qa.jq@a@@
マクロを何回繰り返したいかがわかっている場合は4@@
、何でも使用できます。
繰り返したい行を視覚的に選択し、入力して各行で:normal! .
vimを使用できます。.
視覚的な選択から始めたので、最終的には次のようになります。
:'<,'>normal! .
ただし、コメントを頻繁に追加および削除する場合は//
、次のマッピングが役立つ場合があります。
" add // comment with K
noremap K :s,^\(//\)\=,//,e <BAR> nohls<CR>j
" remove // comment with CTRL+K
noremap <C-K> :s,^//,,e <BAR> nohls<CR>j
を使用5K
して 5 行にコメントすることも、ビジュアル モードを使用して最初に行を選択することも、必要なK
すべてのコメントが終わるまでハンマーで叩くこともできます。
あなたの特定の例に関して、私はビジュアルブロックモード(でアクセスCtrl-v
)を使用して複数行の挿入を行うことを好みます。たとえば、次の行がある場合:
This should be a comment.
So should this.
This is definitely a comment.
Is this a comment? Yes.
一番上の行の一番上の最初の文字に移動し、ヒットCtrl-v
してビジュアルブロックモードに入り、最後の行に移動します(3j
3行下に移動するために使用4g
するか、4行目に直接移動するために使用するか、単にG
最後に移動するために使用します) )、次に入力I// <esc>
して、すべての行にコメントを一度に挿入します。
// This should be a comment.
// So should this.
// This is definitely a comment.
// Is this a comment? Yes.
また、ここには多くの言語をサポートする非常に便利なコメンター/アンコメンタープラグインがあります。コメントを手動で挿入/削除するよりも簡単です。
あなたの特定の例について。範囲.,.5s#^#//#
(これと次の 5 行を実行するため) またはビジュアル ブロック (v を押してから、必要なテキストを選択する) を使用して、その後に:%s#^#//#
.
それを行う別の方法は、マークを設定し、その範囲で置換を実行することです。
マ jjjj メガバイト :'a,'bs,^,// ,