Vimのアンドゥ、リドゥ、リピート — u, Ctrl+r, .
Vimのアンドゥツリー、リドゥ、変更を繰り返す強力なドットコマンドを学ぶ。u、Ctrl+r、そして経験豊富なVimユーザーが常に頼りにする . コマンドを理解。
Editing
詳細な説明
アンドゥとリドゥ
| コマンド | アクション |
|---|---|
u |
最後の変更を取り消す |
Ctrl+r |
リドゥ(アンドゥの取り消し) |
U |
現在の行のすべての変更を取り消す |
{n}u |
最後のn回の変更を取り消す |
Vimのアンドゥツリー
線形のアンドゥ履歴を持つほとんどのエディタとは異なり、Vimはアンドゥツリーを保持します。複数の変更を取り消して新しい編集を行っても、以前のリドゥ履歴は失われません — アンドゥツリーの分岐になります。このツリーを以下でナビゲートできます:
g-— より古いテキスト状態に移動g+— より新しいテキスト状態に移動:earlier 5m— 5分前のテキスト状態に移動:later 10s— 10秒先のテキスト状態に移動
ドットコマンド(.)
. コマンドは最後の変更を繰り返します。これはおそらくVimの最も強力な機能です:
ワークフロー例:
ciwfoo— カーソル下の単語を "foo" に変更- 別の単語に移動
.— その単語も "foo" に変更
「変更」としてカウントされるもの:
- Insertモードに入ってから出るまでのすべて
- テキストを変更するNormalモードコマンド(
x、dd、>>など) - 置換コマンド
ドットと検索の組み合わせ
キラーパターンは . と n の組み合わせです:
/oldWord— 単語を検索cwNewWord— それを変更n— 次のマッチにジャンプ.— 変更を繰り返す- 必要に応じてステップ3-4を繰り返す
これにより各置換を手動で制御でき、:%s にはない柔軟性を提供します。
ユースケース
ミスを取り消したり、変更をリドゥしたり、Vimのドットリピートコマンドを使ってファイル内の複数箇所に同じ編集を効率的に適用する必要がある場合。