検索
連載

ビジュアルモードでテキストを選択し加工するいまさら聞けないVim(5)(1/3 ページ)

前回はタブやタイルウィンドウといったユーザーインターフェイスを有効に活用する方法を紹介しました。今回は、目視しながらテキストの選択ができる「ビジュアルモード」の基本と、その活用例を紹介します。(編集部)

Share
Tweet
LINE
Hatena

目視で確認しながらテキストを選択できる

 ViとVimの大きな違いの1つに、Vimには「ビジュアルモード」と呼ぶテキスト選択機能があるということが挙げられる。ビジュアルモードではテキストを文字単位、行単位、矩形単位で選択し、選択したテキストに対してVimのコマンドを適用できる。今回は、いつもよりもスクリーンショットを多く使って、Vimのビジュアルモードについて解説する。

 Viでも範囲を指定してのコマンド実行は可能だ。例えば、「5行目から8行目まで、○○という文字を□□に置換する」といった処理ができる。しかし、Vimのビジュアルモードのようなモードはなく、ViとVimを区別する大きな要因の1つとなっている。

 ビジュアルモードを使いこなせるようになると、かゆいところに手が届くような操作が可能になる。Viのように行番号や、処理する行数を指定してコマンドを入力することは、慣れないと難しいものだ。ビジュアルモードでは、選択部分を視覚的に確認できるため、目で行数をカウントする必要もなく、選択作業がやりやすいという特徴がある。

3種のビジュアルモード

 Vimには3つのビジュアルモードがある。エディタやワープロのように文字単位で選択するビジュアルモード行単位で選択するビジュアルラインモード矩形で選択するビジュアルブロックモードの3種類だ。[v][V][Ctrl-v]でそれぞれのビジュアルモードへ移行する。ただし、Windowsでは[Ctrl-v]は貼り付けになってしまうので、代わりに[Ctrl-q]を使う。

 ビジュアルモードに移行したら、カーソルキーや[h][j][k][l]でカーソルを移動させる。またここで[gg][G]によるジャンプ、[/][?]による探索も可能だ。例えば、ls.cのソースコードをVimで開いて、ある程度の長さのテキストを選択してみよう(図1)。

図1 ls.cのソースコードをVimで開いたところ。カーソルをテキスト選択を始めたい場所へ移動させる。クリックすると拡大
図1 ls.cのソースコードをVimで開いたところ。カーソルをテキスト選択を始めたい場所へ移動させる。クリックすると拡大

 テキスト選択を始めたい場所にカーソルを移動させたら、「v」と入力する。下部に「-- ビジュアル --」という表示が見えるはずだ。これでビジュアルモードに入っている。ビジュアルモードに入った時点でカーソルがあった場所を基準に、カーソルが移動した先までが選択対象となる。選択した部分は反転表示になる(図2)。

図2 ビジュアルモードで、ls.cのソースコードのおよそ3行を選択したところ。ビジュアルモードに入ると下部に「-- ビジュアル --」という表示が現れる。クリックすると拡大
図2 ビジュアルモードで、ls.cのソースコードのおよそ3行を選択したところ。ビジュアルモードに入ると下部に「-- ビジュアル --」という表示が現れる。クリックすると拡大

 カーソルキーやhjkl、どの方法でもよいので、カーソルを移動させる。すると、「v」を押した部分からカーソルがある部分までテキストが選択状態になっていることを確認できる。

 ここで[ESC]を押してビジュアルモードからいったん抜けよう。そして「V」と入力する。今度は下部の表示が「-- ビジュアル 行 --」になることを確認できる。これがビジュアルラインモードだ。

 カーソルを上下に移動させると、行ごとに文字列を選択できる。行単位でコピーや削除をしたり、コメントアウトやインデントをしたいときなどに便利なモードで、覚えてくると多用するようになる(図3)。

図3 ビジュアルラインモードに入ると下部に「-- ビジュアル 行 --」という表示が現れる。カーソルを移動させると行単位で文字列を選択できることが分かる。クリックすると拡大
図3 ビジュアルラインモードに入ると下部に「-- ビジュアル 行 --」という表示が現れる。カーソルを移動させると行単位で文字列を選択できることが分かる。クリックすると拡大

 再び、[ESC]を押してビジュアルモードを抜けよう。今度は[Ctrl-v]と入力する。下部の表示が「-- ビジュアル 矩形 --」になるはずだ。これがビジュアルブロックモード。

 カーソルを移動させると、最初に[Ctrl-v]を押した場所からカーソルがある場所までを対角として矩形(長方形)にテキストを選択できる。特定の部分にあるコメントを削除したり、特定部分を矩形で切り出して移動させるといったことが簡単にできる。かゆいところに手が届く機能だ(図4)。

図4 ビジュアルブロックモード。矩形にテキストを選択できる。クリックすると拡大
図4 ビジュアルブロックモード。矩形にテキストを選択できる。クリックすると拡大

 ビジュアルモードに入っている間はカーソルを移動すれば選択範囲が変化し、ノーマルモードで利用できるコマンドがそのまま利用できる。そのほかのコマンドは、選択したテキストに対してのコマンドという処理になる。

選択したテキストを操作

 ビジュアルモードに入る基本的な方法を身に付けたら、選択したテキストに対する操作を覚えていこう。まず基本となるコピー&ペーストと削除を試してみよう。サンプルファイルを開いてビジュアルモードに入り、どこでもよいのでテキストを選択する。図5の例ではビジュアルラインモードでテキストを選択している。

図5 ビジュアルラインモードでls.cのソースコードの一部を選択
図5 ビジュアルラインモードでls.cのソースコードの一部を選択

 この状態で[y]を押してみよう。これで、選択したテキストをコピーできる。コピーするとビジュアルモードは終了となり、ノーマルモードに戻る。画面左下を見ると「5 行がヤンクされました」というメッセージを確認できる(図6)。

図6 選択したテキストをコピーしたところ。コピー後はノーマルモードに戻る
図6 選択したテキストをコピーしたところ。コピー後はノーマルモードに戻る

 次は、コピーしたテキストをペーストしたい行の上の行にカーソルを移動させ、[p]を押す。あるいは、ペーストしたい行の下の行にカーソルを移動させ、[P]を押す。[p]でカーソルの下の行へ、[P]でカーソルの上の行へコピーしたテキストをペーストするというわけだ(図7)。

図7 コピーしたテキストをペーストしたところ
図7 コピーしたテキストをペーストしたところ

 テキストの削除もコピーと同じ要領でできる。削除したいテキストをビジュアルモードで選択し(図8)、[x]や[d]を押せばよい。選択したテキストを削除できる(図9)。

図8 削除したいテキストをビジュアルモードで選択する
図8 削除したいテキストをビジュアルモードで選択する
図9 テキストを選択したら、[x]や[d]を押せば削除できる
図9 テキストを選択したら、[x]や[d]を押せば削除できる

 これまで紹介した操作はあくまでも基本的なものだ。さまざまな応用が可能なので、いろいろな操作を試してほしい。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る