Vim のマーク機能を使用すると、カーソル位置に a
~z
、あるいは A
~Z
のマークを付け、別の場所からそこへジャンプして来ることができるようになります。
マークを付ける
m
に続けて、1 文字のアルファベットを入力すると、現在のカーソル位置にマークを設定することができます。
入力 | 説明 |
---|---|
ma | カーソル位置をローカルマーク a として保存(a ~z を使用可能) |
mA | カーソル位置をグローバルマーク A として保存(A ~Z を使用可能) |
マーク用のアルファベットとして 小文字の a
~z
を使用すると、カレントバッファのみに有効なローカルマーク として設定されます。
大文字の A
~Z
を使用すると、グローバルマーク(ファイルマーク) として設定されます。
ローカルマークはファイルごとに a
~z
を使用することができ、グローバルマークは全体で A
~Z
を共有することになります。
マークを設定した位置へジャンプする
入力 | 説明 |
---|---|
`a | ローカルマーク a へジャンプ |
'a | ローカルマーク a の行頭へジャンプ |
`A | グローバルマーク A へジャンプ |
'A | グローバルマーク A の行頭へジャンプ |
ローカルマーク (a
~z
) を指定してジャンプするときは、カレントバッファで開いているファイルに設定されたローカルマークがジャンプ先のターゲットとなります。
一方、グローバルマーク (A
~Z
) は、マークしたファイルまで一緒に記録されており、Vim でどのファイルを編集中であっても、そのファイルにジャンプすることができます。
頻繁に使用するファイルに mA
でグローバルマークを設定しておけば、'A
でそのファイルをいつでも簡単に開けるようになります。
また、ジャンプ元とジャンプ先で行ったり来たりするために、下記のようなジャンプコマンドを使用することができます。
入力 | 説明 |
---|---|
`` | バッファ内のジャンプ元へジャンプ |
'' | バッファ内のジャンプ元の行頭へジャンプ |
マークの一覧を表示する
現在設定されているローカルマークとグローバルマークの一覧を表示するには、次のコマンドを実行します。
:marks
応用: 最近開いていたファイルを開く
前回開いていたファイルは、グローバルマーク 0
を指定してジャンプすることで開けます。
'0
もとのファイルに戻ってきたい場合は、グローバルマーク 1
を指定すると戻ってこれます。
'1
もっと前に開いていたファイルも、:marks
コマンドでグローバルマークの番号を確認してジャンプすることができます。
応用: マークを利用した編集
`a
と入力するとローカルマーク a
へ移動しますが、これと d
コマンドを組み合わせて使用すれば、カーソル位置からローカルマーク a
までのテキストを削除することができます。