Vimのマークとジャンプ — m, ', `, とジャンプリスト
Vimマークでファイル内の位置をブックマーク。ローカルマーク(a-z)、グローバルマーク(A-Z)、自動マーク、ジャンプリスト、チェンジリストで効率的なナビゲーションを学ぶ。
Marks
詳細な説明
マークの設定と使用
マークで位置をブックマークし、即座にジャンプして戻れます:
マークの設定
| コマンド | アクション |
|---|---|
m{a-z} |
ローカルマークを設定(現在のファイル内) |
m{A-Z} |
グローバルマークを設定(ファイル間) |
マークへのジャンプ
| コマンド | アクション |
|---|---|
'{mark} |
マークの行にジャンプ(最初の非空白文字) |
\{mark}` |
マークの正確な位置にジャンプ |
:marks |
すべてのマークを一覧表示 |
:delmarks {marks} |
指定されたマークを削除 |
:delmarks! |
すべての小文字マークを削除 |
自動マーク
Vimは自動的にいくつかのマークを設定します:
| マーク | 位置 |
|---|---|
'' または \`` |
最後のジャンプ前の位置 |
'. または \.` |
最後の変更の位置 |
'^ または \^` |
Insertモードを最後に終了した位置 |
'[ または \[` |
最後に変更またはヤンクしたテキストの先頭 |
'] または \]` |
最後に変更またはヤンクしたテキストの末尾 |
'< |
最後のVisual選択の先頭 |
'> |
最後のVisual選択の末尾 |
ジャンプリスト
「ジャンプ」(検索、マーク、gg、Gなど)を行うたびに、Vimは位置を記録します:
| コマンド | アクション |
|---|---|
Ctrl+o |
ジャンプリストの前の位置に移動 |
Ctrl+i |
ジャンプリストの次の位置に移動 |
:jumps |
ジャンプリストを表示 |
チェンジリスト
Vimは変更を行った場所も追跡します:
| コマンド | アクション |
|---|---|
g; |
前の変更位置に移動 |
g, |
次の変更位置に移動 |
:changes |
チェンジリストを表示 |
ワークフロー例
- 100行目で関数を編集中
- 10行目で何かを確認する必要がある:
ma(マークaを設定)、次に10G - 確認後:
\a` で元の位置に正確にジャンプバック
ユースケース
大きなファイルをナビゲートしており、重要な位置をブックマークしたり、それらの間をジャンプしたり、ジャンプ/チェンジリストを使って編集の道筋を辿り直す必要がある場合。