前回、Vimにおけるテキスト選択機能として行選択、文字選択、矩形選択を取り上げた。まずは基本としてカーソルキーを使った方法を紹介したが、実運用を考えるともっと効率良く操作したいところだ。今回は、テキスト選択の操作効率をアップする方法を紹介する。
Vimで用意されているテキスト選択の方法は多岐に渡るが、ここでは特に利用頻度が高くて覚えやすいものを紹介しておく。さくっと身に付けて作業効率を上げていただきたい。
カーソル入力を高速化
前回の方法では、例えば27行分のテキストを選択するには、カーソルキーを27回打鍵する必要がある。100行分選択するには、100回の打鍵が必要だ。とてもではないが、そんな効率の悪い操作はやっていられない。
例として、次のような設定ファイルを編集するケースを考えてみよう。前回は「あ」が並んだテキストコンテンツのファイルを使ったが、実際にはこんな感じのテキストファイルを編集することがほとんどだ。
このファイルの1行目から27行目までをテキスト選択するとしよう。まず、1行目にカーソルを移動させてから「V」を押して行選択のモードに入る。
次に「2」「7」「↓」と押す。この入力でカーソルキー「↓」を27回押すという操作と同じになる。Vimでは操作の前に数字を入力することで、その数字の回数だけ操作を繰り返させることができるのだ。
「数字+命令」はその命令を繰り返させるための基本的な方法となっている。これまでに取り上げてきたVimの操作も、操作の前に数字を入力することでその回数だけ繰り返すことができる。これを知っているだけで、操作速度が格段に向上するはずだ。
選択終点をキーワード検索(下方向)
テキスト選択を効率的に行うもう1つの方法は検索と組み合わせることだ。選択開始の操作はこれまでと同じだが、終点を選ぶときに検索機能を使用して該当場所までジャンプする。これで任意範囲の高速選択が可能になる。
たとえば次のスクリーンショットは1行目でVを押して行選択モードに入ったところだ。
次に「/」キーを押下する。カーソルが下部に移動するとともに、プロンプトが「/」になっていることがわかるだろう。
ここで検索したいキーワードを入力する。下記スクリーンショットではキーワードとして「include」という文字列を入力してある。データ的には19行目に「include」という文字列があり、ここが最初にヒットすることになる。
この状態でエンターキーを押せば、次のように1行目から最初の「include」という文字列が含まれている行までが選択の対象になる。
検索による範囲選択はかなり応用の幅が広い。覚える操作は少ないが得られる効果は大きい。
選択終点をキーワード検索(上方向)
下方向への検索は「/」で、上方向の検索は「?」だったことはこれまでに説明済みだ。テキスト選択も同じで、「/」で下方向へ検索、「?」で上方向へ検索して範囲選択を行うことができる。次のスクリーンショットはカーソルを27行目に移動させてから、「V」キーを押して行選択モードに入ったものだ。
この状態で「?」キーを押すと、カーソルが下部に移動する。プロンプトとして「?」が使われていることがわかる。
ここでキーワードを入力する。次のスクリーンショットでは「weekly」という文字列を入力しており、サンプルで使ったテキストファイルでは3行目に含まれている文字列が一致の対象となる。
ここでエンターキーを押すと次のように対象が選択される。
このように、テキスト選択は多くのケースで「/」キーおよび「?」キーを使って終点を探ることで素早く実施することができる。
全体選択
後は、極端なケースを3つ取り上げておきたい。まずはテキストファイル全部を選択する方法だ。まず、次のように1行目に移動してから「V」キーを押して行選択モードに入る。
次に「G」キーを押す。これでファイル末尾までが選択対象として選択される。
「gg」でファイル先頭行に、「G」キーでファイル末尾行にカーソルを移動させることができることはこれまでに紹介した。テキスト選択とこのカーソル移動を組み合わせることで、ファイル全体を素早く選択することができる。
選択業からファイル先頭までを選択
「gg」や「G」によるカーソル移動とテキスト選択終点設定を利用するとこのようなこともできる。次のスクリーンショットはカーソルを19行目に移動させてから「V」キーを押して行選択モードに入ったものだ。
次に「gg」と入力する。これで選択範囲の終点がファイル先頭行へ移動する。
「gg」や「G」キーによる移動は、場合によっては結構使うので覚えておくとよいだろう。
選択行からファイル末尾までを選択
「特定の行からファイル末尾までを選択する」というのも結構よくある操作だ。ファイルの下部には、古いコメントを保存していたり、メモ的にテキストを書き込んでいたりすることは少なくない。それらをまとめて選択して削除したいようなときなどには特に便利だろう。
次のスクリーンショットは、カーソルを19行目に移動させてから「V」キーを押して行選択モードに入ったものだ。
次に「G」キーを押す。これで選択範囲の終点がファイル末尾行へ移動する。
テキスト選択では、とりあえずこの辺りの操作方法を覚えておけばよいと思う。
テキスト選択の本来の使い方はここから
テキスト選択が効果を発揮するのはここからだ。範囲を選択した後で、その範囲に対してだけ命令を適用することができる。主に使われるのは削除、置換、コマンドの実行といったところだろう。些細なことかもしれないが、頻繁に使う操作であるだけに、手早くできればそれだけ時短になる。
まずは任意の範囲の選択をサクサクと行うことができるように、Vimで練習してほしい。Vimの習得には、何と言っても実践が欠かせない。新しい操作方法を知ったら、とにかく使って操作方法を身に付ける。何も考えなくても思考がそのまま操作になるくらいまで使い込むことが大切だ。