next up previous contents
Next: 15.8 文字列、単語のコピーと移動 Up: 15. vi 入門 Previous: 15.6 行の移動とコピー

15.7 もっと速く移動するには

viには、テキスト作成の効率化を図るため、きめ細かな配慮が行き届いて います。その代表的な例が豊富な移動コマンドです。数が多いので、 意識して覚えようとしないと、なかなか身に付きません。しかし、 これらの移動コマンドを使いこなさないと、viが真の威力を発揮することは できません。逆に、これらの移動コマンドの恩恵を受けることができるように なれば、「なぜviではいちいち ESCを押してから移動するのか?」などという 不満は、自然になくなるはずです。

小さな単位の移動から順にまとめていくことにします。 文字単位の移動は h 、l(el) でした。文字の次に小さい単位は単語です。 まず1つの単語の中での移動です。(日本語の文章内では「単語」は 「文節」として扱われます。)

b
単語の先頭に戻る
e
単語の末尾に移動

既に単語の先頭にいる状態でbを行うと、1つ前の単語の先頭に移動します。 既に単語の末尾にいる状態でeを行うと、1つ先の単語の末尾に移動します。 b、e は単語間の移動のコマンドでもあるわけです。単語間の移動には、 これらに加えて、wがあります。

w
次の単語の先頭に移動
b
前の単語の先頭に戻る
e
次の単語の末尾に移動

wとbが単語単位での移動コマンドです。wは次の単語の先頭に、bは1つ前の 単語の先頭にカーソルを移動させます。

単語単位の処理の時、特に問題となるのは区切りの判断です。w、b、eでは、 空白の他に),.などの記号も、単語の切れ目として判断します。しかし、 プログラムの時などは、こうした記号も単語の一部として扱ったほうが便利な 場合もあります。その時には、W、B、Eを使います。働きはw、b、eと 変わりませんが、単語の区切りは空白と改行だけで判断します。

複数の単語を飛ばす時には、6wのようにしてください。

単語の次に小さな単位は行です。行内の移動で最も多く使われるのは次の2つです。

0
行の先頭へ移動
$
行の末尾へ移動

行の中でのカーソル移動には、次のようなものもあります。

f
fの次に指定した文字を行末方向に探索して移動
F
Fの次に指定した文字を先頭方向に探索して移動
t
tの次に指定した文字を行末方向に探索して、その前に移動
T
Tの次に指定した文字を先頭方向に探索して、その後に移動

たとえば、fsと押せば行の中にあるsの字の場所にカーソルが飛びます。

行の中の特定の単語や記号を修正する時に便利です。ただし、 この命令は行の中だけでのみ有効です。

画面の中で大きく移動するには、H、L、M を使います。

H
画面の一番上の行に移動
L
画面の一番下の行に移動
M
画面の中央の行に移動

Hはhight、Lはlowの略です。文字移動のh、l(el) とは無関係ですから、 打ち間違いに注意しましょう。

画面を越えての移動で欠かせないのが、次の2つです。

^f(CTRLキーを押しながらf)
画面を次のページにスクロールする。
^b(CTRLキーを押しながらb)
画面を前のページに逆スクロールする。

ファイルの先頭や末尾にジャンプするにはどうすればいいでしょうか?

ファイルの指定した場所へジャンプするコマンドは、G です。ただGと打つと カーソルはファイルの最後に移動します。Gの前に数字を入力すると、 その数字は行番号だと解釈されます。(繰り返しの回数ではありません。) たとえば、1G はファイルの先頭に、20Gはファイルの20行目に カーソルを移動します。プログラムのデバッグの時に、Gコマンドは大変便利です。



Noriyo Kanayama