この記事のゴール
- vimでカーソルを1つずつ移動する。
- vimでカーソルをページ単位で移動する。
- vimでカーソルを単語単位で移動する。
- vimでカーソルを先頭や最終行に移動する。
- vimでカーソルを指定した行に移動する。
この記事を読むにあっての前提条件
- ターミナルの起動方法は知っている。(本記事ではUbuntuを使って説明しています。)
- vimがインストールされている。
- vimでファイルを作成する方法を知っている。
実際に試す際の注意事項
-
<CTRL>
はキーボードのコントロールキーを押すという意味となります。Macの方はCommandキーに読み替えてください。
説明に使うサンプルテキスト
次の26行からなるテキストを使って説明します。
I like apples.
I like bananas.
I like carrots.
I like durian.
I like eggs.
I like fish.
I like grapes.
I like honey.
I like ice cream.
I like jellybeans.
I like kiwi.
I like lemons.
I like mangoes.
I like nectarines.
I like oranges.
I like peaches.
I like quail eggs.
I like raspberries.
I like strawberries
I like tomatoes.
I like udon noodles.
I like vegetables.
I like watermelons.
I like x-mas cookies.
I like yogurt.
I like zucchini.
カーソルを移動させる
キーを1回押すごとにカーソルが1つ動きます。キーを押したままにすると、カーソルが連続して移動します。
カーソルをページ単位で移動させる
ここでは練習用にターミナルで表示できる行数が6行となるようターミナルの高さを短くしています。
sample.txt
を開きます。すると下図のようにファイルの先頭にカーソルがあたった状態で表示されています。
カーソルの位置が違う場合はgg
(後述)を押してください。
-
<CTRL>
を押しながらf
を押します。すると、次のページが表示されるのがわかります。 -
<CTRL>
を押しながらb
を押します。すると、前のページが表示されるのがわかります。
f → forwards 「次の」という意味の頭文字です。
b → backwards 「前の」という意味の頭文字です。
なお、キーを押したままにすると連続してページが移動します。
カーソルを単語単位で移動させる
- ファイルの先頭にカーソルを移動させます。この時
w
を押します。次の単語の先頭にカーソルが移動することがわかります。このようにw
を押すと単語単位でカーソルが移動します。
カーソルの位置が違う場合はgg
(後述)を押してください。以降同様です。
-
ファイルの先頭にカーソルを移動させます。この時
2w
と入力します。すると2単語目の先頭にカーソルが移動することがわかります。このようにw
の前に数値を入れるとw
の操作を指定した回数分(=今回の場合は2回)実施してくれます。 -
今回の場合は移動する単語数が少ないのでありがたみは少ないですが、移動する単語数が多い場合は数値に指定による移動は便利です。
-
次に
b
を押します。すると前の単語の先頭にカーソルが移動することがわかります。このようにb
を押すと単語単位でカーソルが移動します。
w → word 「単語」という意味の頭文字です。
b → back 「戻る」という意味の頭文字です。ここでは「単語単位で戻る」の「b(戻る)」と解釈すると覚えやすいかもしれません。
w
とW
の違い/b
とB
の違い
- 今回のサンプルではわかりにくいですが、
w
やb
を何度も押していくと、ピリオドにカーソルが止まることが確認できます。このようにw
やb
はピリオドも1つの単語として認識します。(そのように認識する文字はピリオドの他にもあります。) - もしピリオドを1単語としてカウントしたくない場合は、代わりに
W
やB
を使います。文字と文字の間のスペースを目安に単語をカウントします。
特定の行にカーソルを移動させる
-
ファイル操作をしている時、ファイルの先頭行の行頭にカーソルを移動させたい時があります。その時は
gg
と入力します。 -
一方でファイル操作をしている時、ファイルの最終行の行頭にカーソルを移動させたい時があります。その時は
G
と入力します。
gg → 「go」(移動する)が関連していると思われますが、由来については不明です。このまま覚えましょう。
-
gg
は、1gg
と書いても同じです。gg
の前に数値を指定するとその行に移動します。例えば13gg
とすると13行目に移動します。あらかじめ移動したい行がわかっている場合は便利です。