最近聞かれたので、
自分がよく使う移動コマンドをまとめてみました。
プラグインいらずの素のVim
ですが、
プラグインなしで十分高速に移動できます。
特に一行一文字検索のf
コマンドとか、
変更してきた箇所をもどれるg;
コマンドとかが使えてくると本当に便利です。
あっ、この記事は主にファイル内の移動に限っています。
基本移動
初心者はまず、矢印キーを脱却して、h, j, k, l
へ。10j
のように数字を先に打つと、一気に数字分移動できる
コマンド | 移動内容 |
---|---|
h | 左へひとつ |
j | 下へひとつ |
k | 上へひとつ |
l | 右へひとつ |
ステップアップ
表示上の行移動
コマンド | 移動内容 |
---|---|
gj | 下へひとつ |
gk | 上へひとつ |
115 abcdefg
hijklmn
116 abcd
115行目のbにカーソルがある場合、
通常のj
移動だと、b➡b
表示行のgj
移動だと、b➡i
行移動
コマンド | 移動内容 |
---|---|
0 | 行の先頭へ(インデント無視して先頭へ) |
^ | 行の先頭へ |
$ | 行の末尾へ |
+ | 下の行の先頭へ |
- | 上の行の先頭へ |
ステップアップ
前述同様g
をつけると表示上の移動へ(直感的)
ページ移動
ガッと移動したい場合
コマンド | 移動内容 |
---|---|
ctrl + u | 半画面分 上へ |
ctrl + d | 半画面分 下へ |
ctrl + b | 一画面分 上へ |
ctrl + f | 一画面分 下へ |
{ | 段落毎に上へ |
} | 段落毎に下へ |
gg | そのファイルの先頭へ |
G | そのファイルの末尾へ |
他には:100
で行指定で移動できる。
この場合だと、100行目に移動。
単語移動
コマンド | 移動内容 |
---|---|
w | 単語の先頭に進む |
b | 単語の先頭に戻る |
e | 単語の末尾に進む |
ge | 単語の末尾に戻る |
単語分を進むか戻るか、さらに大文字もある。
ステップアップ
コマンド | 移動内容 |
---|---|
W | 単語の先頭に進む |
B | 単語の先頭に戻る |
E | 単語の末尾に進む |
gE | 単語の末尾に戻る |
違いは次のような単語を一語とみるかどうか
abc.def.ghi
小文字なら5単語 abc . def . ghi
大文字なら1単語 abc.def.ghi
a➡i
に行きたい場合、e
移動なら5回 a➡c➡.➡f➡.➡i
E
移動なら1回 a➡i
一行一文字検索
これホント便利。多用してます。
コマンド | 移動内容 |
---|---|
f | その行の順方向に一文字検索 |
F | その行の逆方向に一文字検索 |
t | その行の順方向に一文字検索(カーソルは文字の手前) |
T | その行の逆方向に一文字検索(カーソルは文字の手前) |
abcdefg hijklmn
a
にカーソルがある場合、fi
で一気にi
に移動。
ステップアップ
これとfキーの組み合わせが、本当に便利。
コマンド | 移動内容 |
---|---|
; | 順方向に繰り返し検索 |
, | 逆方向に繰り返し検索 |
abcdefg abcdefg abcdefg
a
から三つ目のe
に行く場合、fe
;
;
そこから二つ目のe
に戻る場合,
検索移動
一般的なページ内文字列検索
コマンド | 移動内容 |
---|---|
/ | 順方向に文字列検索 |
? | 逆方向に文字列検索 |
n | 順方向に繰り返し検索 |
N | 逆方向に繰り返し検索 |
abcde abced abcedf
この場合、/edf
で末尾のedf
に移動。
複数行にわたって検索可能。
括弧移動
これはd
の削除とかy
のコピーと合わせて使うと便利。
コマンド | 移動内容 |
---|---|
% | 対となる括弧へ移動 |
(abc)
カーソルが(
から%
コマンドで)
へ移動
TIPS
ジャンプリストを辿る
ファイル内も移動できるけど、ファイル間の移動に便利。
直前に編集していたファイルに戻りたいとか。
今回の記事にはそぐわないかな。。
コマンド | 移動内容 |
---|---|
ctrl + o | ジャンプしてきた箇所に戻る |
ctrl + i | ジャンプしてきた箇所に進む |
変更リストを辿る
自分がしたファイルの変更履歴をたどれる。便利。
コマンド | 移動内容 |
---|---|
g; | 変更してきた箇所に戻る |
g, | 変更してきた箇所に進む |
マーク移動
あんまり使っていないから、要望があるまでカット。
最後に
この移動と組み合わせて削除とかコピーとかいろいろできることが、
vimの移動の便利なところですね。