Vim の文字検索移動コマンド
Vim にはカーソル行の中だけに限って、一文字だけを検索して前後に移動する機能があります。他のエディターではあまり見たことがない機能ですが、削除や変更コマンドと組み合わせて使うと非常に便利です。
検索対象となる文字は、ASCII文字であれば何でも良いのですが、日本語の文字は受け付けないようです。
また、小文字のアルファベットは、意外とどれも出現頻度が高いので、目当ての場所より手前に重複があることを見逃していて思うように移動できないということがよくあります。
; コマンドで検索を繰り返してもいいのですが、大文字のアルファベットや、記号など出現頻度の低い文字を目印に、 t コマンドで手前まで移動するようにすると、重複の見落としに悩まされることが少なくなります。
コマンド | 検索方向 | 説明 | 覚え方 |
---|---|---|---|
f{文字} | 行末へ(→) | 同じ行を行末方向に検索して、最初に見つかった指定された文字の場所にカーソルを移動させます | find |
F{文字} | 行頭へ(←) | 同じ行で行頭方向に検索して、最初に見つかった指定された文字の場所にカーソルを移動させます | f の逆方向 |
t{文字} | 行末へ(→) | 同じ行を行末方向に検索して、最初に見つかった指定された文字の一つ手前にカーソルを移動させます | until |
T{文字} | 行頭へ(←) | 同じ行で行頭方向に検索して、最初に見つかった指定された文字の一つ手前にカーソルを移動させます | t の逆方向 |
; | 最後の一文字検索コマンドに準じる | 最後に行われた f, F, t, T コマンドを繰り返して、次に見つかった文字に移ります | 右手ホームポジションの小指位置 |
, | 最後の一文字検索コマンドの逆方向 | 最後に行われた f, F, t, T コマンドの逆方向検索を行う | 出番が少ないので別の機能に割り当てられることもしばしば… |