Vim コマンドラインコマンド (:insert、:normal など) にカウントを付与する方法

Vim コマンドラインコマンド (:insert、:normal など) にカウントを付与する方法

おそらく皆さんご存知のとおり、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!

関連情報