最近聞かれたので、
自分がよく使う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はこちら]
(https://twitter.com/takeharumikami)
[Feedlyのフォローはこちら]
(http://cloud.feedly.com/#subscription%2Ffeed%2Fhttp%3A%2F%2Fqiita.com%2Ftakeharu%2Ffeed)