Edited at

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

More than 3 years have 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のフォローはこちら