前回はタブやタイルウィンドウといったユーザーインターフェイスを有効に活用する方法を紹介しました。今回は、目視しながらテキストの選択ができる「ビジュアルモード」の基本と、その活用例を紹介します。(編集部)
ViとVimの大きな違いの1つに、Vimには「ビジュアルモード」と呼ぶテキスト選択機能があるということが挙げられる。ビジュアルモードではテキストを文字単位、行単位、矩形単位で選択し、選択したテキストに対してVimのコマンドを適用できる。今回は、いつもよりもスクリーンショットを多く使って、Vimのビジュアルモードについて解説する。
Viでも範囲を指定してのコマンド実行は可能だ。例えば、「5行目から8行目まで、○○という文字を□□に置換する」といった処理ができる。しかし、Vimのビジュアルモードのようなモードはなく、ViとVimを区別する大きな要因の1つとなっている。
ビジュアルモードを使いこなせるようになると、かゆいところに手が届くような操作が可能になる。Viのように行番号や、処理する行数を指定してコマンドを入力することは、慣れないと難しいものだ。ビジュアルモードでは、選択部分を視覚的に確認できるため、目で行数をカウントする必要もなく、選択作業がやりやすいという特徴がある。
Vimには3つのビジュアルモードがある。エディタやワープロのように文字単位で選択するビジュアルモード、行単位で選択するビジュアルラインモード、矩形で選択するビジュアルブロックモードの3種類だ。[v]、[V]、[Ctrl-v]でそれぞれのビジュアルモードへ移行する。ただし、Windowsでは[Ctrl-v]は貼り付けになってしまうので、代わりに[Ctrl-q]を使う。
ビジュアルモードに移行したら、カーソルキーや[h][j][k][l]でカーソルを移動させる。またここで[gg]や[G]によるジャンプ、[/]や[?]による探索も可能だ。例えば、ls.cのソースコードをVimで開いて、ある程度の長さのテキストを選択してみよう(図1)。
テキスト選択を始めたい場所にカーソルを移動させたら、「v」と入力する。下部に「-- ビジュアル --」という表示が見えるはずだ。これでビジュアルモードに入っている。ビジュアルモードに入った時点でカーソルがあった場所を基準に、カーソルが移動した先までが選択対象となる。選択した部分は反転表示になる(図2)。
カーソルキーやhjkl、どの方法でもよいので、カーソルを移動させる。すると、「v」を押した部分からカーソルがある部分までテキストが選択状態になっていることを確認できる。
ここで[ESC]を押してビジュアルモードからいったん抜けよう。そして「V」と入力する。今度は下部の表示が「-- ビジュアル 行 --」になることを確認できる。これがビジュアルラインモードだ。
カーソルを上下に移動させると、行ごとに文字列を選択できる。行単位でコピーや削除をしたり、コメントアウトやインデントをしたいときなどに便利なモードで、覚えてくると多用するようになる(図3)。
再び、[ESC]を押してビジュアルモードを抜けよう。今度は[Ctrl-v]と入力する。下部の表示が「-- ビジュアル 矩形 --」になるはずだ。これがビジュアルブロックモード。
カーソルを移動させると、最初に[Ctrl-v]を押した場所からカーソルがある場所までを対角として矩形(長方形)にテキストを選択できる。特定の部分にあるコメントを削除したり、特定部分を矩形で切り出して移動させるといったことが簡単にできる。かゆいところに手が届く機能だ(図4)。
ビジュアルモードに入っている間はカーソルを移動すれば選択範囲が変化し、ノーマルモードで利用できるコマンドがそのまま利用できる。そのほかのコマンドは、選択したテキストに対してのコマンドという処理になる。
ビジュアルモードに入る基本的な方法を身に付けたら、選択したテキストに対する操作を覚えていこう。まず基本となるコピー&ペーストと削除を試してみよう。サンプルファイルを開いてビジュアルモードに入り、どこでもよいのでテキストを選択する。図5の例ではビジュアルラインモードでテキストを選択している。
この状態で[y]を押してみよう。これで、選択したテキストをコピーできる。コピーするとビジュアルモードは終了となり、ノーマルモードに戻る。画面左下を見ると「5 行がヤンクされました」というメッセージを確認できる(図6)。
次は、コピーしたテキストをペーストしたい行の上の行にカーソルを移動させ、[p]を押す。あるいは、ペーストしたい行の下の行にカーソルを移動させ、[P]を押す。[p]でカーソルの下の行へ、[P]でカーソルの上の行へコピーしたテキストをペーストするというわけだ(図7)。
テキストの削除もコピーと同じ要領でできる。削除したいテキストをビジュアルモードで選択し(図8)、[x]や[d]を押せばよい。選択したテキストを削除できる(図9)。
これまで紹介した操作はあくまでも基本的なものだ。さまざまな応用が可能なので、いろいろな操作を試してほしい。
Copyright © ITmedia, Inc. All Rights Reserved.