【入門】Vimで高速で移動~プラグインなしでの移動まとめ~

  • 970
    Like
  • 2
    Comment
More than 1 year has passed since last update.

最近聞かれたので、
自分がよく使うVimの移動コマンドをまとめてみました。

プラグインいらずの素の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の移動の便利なところですね。

外部アカウント

技術情報のみつぶやくアカウント作成しました。VimやNeoVimの最新情報も発信していきます。
Twitterはこちら
Feedlyのフォローはこちら