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 チェンジリストを表示

ワークフロー例

  1. 100行目で関数を編集中
  2. 10行目で何かを確認する必要がある:ma(マークaを設定)、次に 10G
  3. 確認後:\a` で元の位置に正確にジャンプバック

ユースケース

大きなファイルをナビゲートしており、重要な位置をブックマークしたり、それらの間をジャンプしたり、ジャンプ/チェンジリストを使って編集の道筋を辿り直す必要がある場合。

試してみる — Vim Cheat Sheet

フルツールを開く