Vimでシステム開発
将太郎 2008/05/12   |  開発色々
11.基本的な移動 2008/05/12  |  PK:Vim 基本 移動

Vim内の移動方法は非常に沢山ありますが、全部把握する必要がありません。私たちの目標はVimマスタになることではなく、効率よくファイルを編集することです。移動方法の中よく使う方法を勉強しましょう。

以下紹介するコマンドは、特に説明がなければNormalモードで使うコマンドとします。これらのコマンドのヘルプは「:help コマンド名」です。例えば、「j」コマンドは、「:help j」です。


1.上下左右

最も簡単かつ最も使うコマンドのh,j,k,lから始めましょう。
h,j,k,lはそれぞれ左、下、上、右へ移動します。多くのVimコマンドと同じ、これらのコマンドの前に数字を入れて、移動の倍率を表します。例えば、「10j」は下10行へ。

デフォルトでは、hとlコマンドはカーソルを現在の行から外さない。カーソルは行の頭にあれば、hを押しても前の行へ行きません。前の行へ行くようにするのは、「whickwrap」オプションを設定します。詳しくは「:help ’whichwrap’」

Vimの作者はキーのバインドについて、色々工夫しました。ほかのh,j,k,lのキーバインドを見てみましょう。各ウィンドの間に移動のコマンドは、CTRL-W h/j/k/l(:help CTRL-W_h)。ウィンドの位置を上下左右に移動する時は、CTRL-W H/J/K/L(:help CTRL-W_H)。


2.改ページ移動


Vimの改ページ移動にもPageUpとPageDownを使えます。しかし、矢印キーと同じ、指は主編集領域から外れてしまいます。ですから、よく「CTRL-B」と「CTRL-F」を使います。もちろん、CTRL-BとCTRL-Fの前に数字を入れれば、移動するページ数を指定できます。


3.ファイル中の移動

Vimは幾つかのコマンドを用意していて、ファイルの中で簡単に移動できます。

「gg」はファイルの1行目へ、「G」は最終行へ、「20G」は20行目へ移動します。パーセントでも移動できます。真ん中へは「50%」、75%の所へは「75%」です。詳しくは「:help N%」。
ファイルの中で移動している内に、カーソルがどこにあるか分からなくなることもあるでしょう。「CTRL-G」でカーソルを位置を表示できます。また、「set number」で行番号を表示すればわかりやすいです。詳しくは「:help ’number’」。


4.指定の文字へ

先紹介したコマンドは殆ど行単位で移動する時のコマンドです。行の中で移動するのは f,t,F,T コマンドです。
「f」はカーソルの右側の文字へ移動します。例えば、「fx」はカーソル右側の一個目の x へ移動します。「F」は逆で左側へ移動します。
「t」と「f」の区別は、「t」は指定の文字の前まで移動します。例えば、「tx」はカーソル右側の一個目の x の前に移動します。「T」は逆で左側へ移動します。

この四つのコマンドは行に跨がって移動しません。
コマンドの前に数字を入れて移動の倍数を指定します。「3fx」はカーソル右側3番目の x へ移動します。

「;」は前回のf,t,F,Tコマンドを繰り返し実行します。「,」は逆方向で前回のf,t,F,Tコマンドを繰り返し実行します。この二つのコマンドも数字を入れて倍数を指定できます。
 

5.行頭と行末へ

行頭へ移動は「0」、これはアルファベットのOではなく、数字の0です。行末へは「$」です。また、「^」は行の一番目の空白でない文字へ移動します。
正規表現にて、「^」は行頭、「$」は行末を指します。Vimは正規表現と合せてキーを設定したことが分かりました。


6.単語単位で移動

単語単位で移動するために、まずはテキストを一つ一つの単語に分割しなければなりません。Vimにてテキストを分割する時、「iskeyword」オプションに設定された文字を単語の文字とします。即ち、単語は「iskeyword」に設定された文字からなります。例えば、「iskeyword」を「a-z,A-Z,48-57,_」にした場合、FooBar_123 は一つの単語です。FooBar-123 は三つの単語です、FooBar、-と123です。「a-z,A-Z,48-57,_」中の48-57はASCIIの数字を表します。

Vimにて、次の単語の頭へ移動は「w」です。逆に前の単語の頭へは「b」です。次の単語の末尾へは「e」で、前の単語の末尾へは「ge」です。

上記のコマンドは全て「iskeyword」オプションを使って単語の境界を決めます。空白だけを単語の境界とする幾つかのコマンドもあります。ここの「単語」も通常の単語とは言えないでしょう、空白でない文字からなる文字列です。「W」は次の文字列の頭へ、「B」は前の文字列の頭へ移動します。「E」は次の文字列の末尾へ、「gE」は前の文字列の末尾へ移動します。


7.H/M/L

この三つのコマンドは大文字です。
H、M、Lはそれぞれウィンドの上、真ん中、下に移動し、カーソルを一番目の空白でない文字に置きます。HとLの前に数字を入れて、上と下までの行数を指定します。例えば、「3H」はウィンド上部から、3行目へ移動します。


8.カーソルを座標にしてスクロール

ソースを読むとき、カーソルを座標にしてスクロールする必要が出てきます。「zt」、「zz」、「zb」はそれぞれカーソルをウィンドの上部、真ん中、下部に移動します。この移動方式のメリットは、カーソルは常に座標になり、何回移動しても位置が分からなくなることはありません。


閲覧  |  コメント  |  目次

 
ヘルプ  |  ご利用規約  |  相互リンク  |  問合せ
リンクはご自由に、問合せはお気軽に
©2007 Uprush