この記事では、Vim / neovim でプラグインを使わずに直前のコマンドまたは操作を繰り返す「単発繰り返し」について、ご紹介します。
[解答] ドットコマンド .
次のコマンドで実行可能です。
(ノーマルモードで)
.
これで最後の変更を繰り返す「単発繰り返し」を実行することができます。
これだけですが、非常に強力です。
注意点として「最後の変更を繰り返す」という意味ですが、色々バリエーションがあるようです。主には下記の2つのようです。
- ノーマルモード:直近に実行したコマンド1つ
- インサートモード:インサートモードからノーマルモードに戻るまでの全作業
これをうまく使えば、移動やスクリプトを書くときによく使う操作が簡単です。
例えば、行頭に#を入れてコメント化する作業は次の順にキーを打つだけです。
Shift + i (行頭でインサートモードに移行する) # (コメント記号を入力する) esc / Ctrl + [ (終了) j (一つ下の行に移行する) . (上の3つの処理を繰り返す) 以下、必要なだけ . を入力する
行数があまりにも多い場合はビジュアルモードで行う、もしくはマクロ機能を活用した方が無難ですが、数行程度なら素早くできます。
次の様に数と組み合わせてれば、複数回実行も可能です。
10. (10回ほど単純に繰り返す)
注意としては下記の通りです。若干クセがあります。
- 標準状態では、ヤンクなど対象外となるキーバインドやコマンドがある
- 入力内容を繰り返す場合、改行は含まれるため、複数行の入力も繰り返せる
- 入力を繰り返したい場合、前の文字や前の行に戻った場合は、戻った後の操作しか繰り返せない
複雑な入力や操作を繰り返す場合は、マクロ機能を使った方が無難かも知れませんね。おり
このVimコマンドの補足情報
- 利用頻度[star rate=4]
- 便利さ[star rate=5]
- 覚え易さ[star rate=4]
関連するVimヘルプ
Vimからは、下記のコマンドでヘルプを確認できます。
:help .
ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。
参考書籍
こちらの書籍が参考になります。
[temp id=3]
コメント