%20%E3%81%AB%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%82%92%E4%BB%98%E4%B8%8E%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.png)
おそらく皆さんご存知のとおり、Vim では、コマンドの前に数字を付けることで、「通常モード」のコマンドにカウントを与えることができます。
たとえば4dd
、4 行が削除されます。
vim コマンドラインコマンド (コロンで始まるコマンド) にカウントを渡して、それを複数回繰り返す方法があるかどうか知りたいです。
コマンドを2回2:normal oHi!
繰り返すようなものです。normal oHi!
Vim 内でこのようなことを実行する方法はありますか?
答え1
多くの :-コマンドは引数としてカウントを受け入れます。例:
:delete 4
カーソルがある行から 4 行を削除します。
一部の :-コマンドでは、代わりにコマンド名の前にカウントが使用されます。
:2next
引数リスト内の 2 番目のファイルを編集します。
ただし、:normal
コマンドはどちらの形式でもカウントを受け入れません。ループで囲む必要があります。
for i in range(1,2)
normal oHi!
endfor
もちろん、必要なことを実行するユーザー定義のコマンドを作成することもできます。
command -count=1 -nargs=+ Normal for i in range(1,<count>) | exe 'normal ' . <q-args> | endfor
デフォルトのカウントを 1 に設定-count=1
し、2 番目の方法で呼び出します。
:2Normal oHi!