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

» 2011年06月15日 00時00分 公開
[後藤大地@IT]
前のページへ 1|2|3       

複数行にわたるインデントも一発で処理

 プログラミングでは、複数の行をまとめてインデントしたいということもよくある。そうした場合、対象をビジュアルモードで選択(図17)したら[<]または[>]を押せばよい。[<]を押せば左へインデントを1つ浅くし(図18)、[>]を押せば右へインデントを1つ深くする(図19)。複数回インデントさせたい場合には「数字>」のように数字を加えて実行させればいい。

図17 インデントを変更させたい範囲を選択する 図17 インデントを変更させたい範囲を選択する
図18 [&lt;]で左に向かってインデントを浅くする 図18 [<]で左に向かってインデントを浅くする
図19 [&gt;]で右に向かってインデントを深くする 図19 [>]で右に向かってインデントを深くする

まとまったテキストを置換

 コメントの説明で置換を使ったが、置換を利用すれば選択したテキストを任意の文字に入れ替えられる。例えばテキストを選択してから、「:'s/[a-zA-Z]X//g」とするとどうなるだろうか(図20)。実行すると、大文字と小文字のアルファベットがすべて「X」に置き換わる(図21)。

図20 テキストを選択して「:'s/[a-zA-Z]X//g」とする 図20 テキストを選択して「:'s/[a-zA-Z]X//g」とする
図21 図20のコマンドを実行すると、大文字と小文字のアルファベットをすべて「X」に置き換える 図21 図20のコマンドを実行すると、大文字と小文字のアルファベットをすべて「X」に置き換える

 ちなみに、「s/[a-zA-Z]X//g」の「g」は、一致するすべての文字に対して置換を実施する、という意味。この指定がないと、最初の文字だけ置換して終わりになってしまう。

選択部分の文字数をカウント

 Vimにはカーソルの列数およびファイルの先頭からカーソルの位置までの行数、単語数、文字数、バイト数を表示する機能を備えている。この機能を使うには、g[Ctrl-g]というコマンドを入力する。日本語の文章を書いているときなどに、どの程度文章を書いたか確認するのに便利だ。文字数に指定がある文章を作成しなければならないときなどに便利な機能だ。

 そして、テキストを選択してからこの機能を実行すると、選択したテキストの範囲の情報を表示してくれる(図22)。

図22 テキストの一部を範囲指定してからg[Ctrl-g]を実行すると、指定した範囲の文字数などの情報を表示する。クリックすると拡大 図22 テキストの一部を範囲指定してからg[Ctrl-g]を実行すると、指定した範囲の文字数などの情報を表示する。クリックすると拡大

さらに操作を高速化するために

 今回はVimの提供しているテキスト選択機能(ビジュアルモード、ビジュアルラインモード、ビジュアルブロックモード)と、テキスト選択機能とコマンドを組み合わせた編集方法を紹介した。Vimでは手動で繰り返すような編集はすべてVimにやらせるというのが基本だ。最初は慣れないかもしれないが、ビジュアルモードとコマンドの組み合わせはある程度は覚えてしまいたい。

著者紹介

後藤 大地

後藤大地

オングス代表取締役。@ITへの寄稿、MYCOMジャーナルにおけるニュース執筆のほか、アプリケーション開発やシステム構築、『改訂第二版 FreeBSDビギナーズバイブル』『D言語パーフェクトガイド』『UNIX本格マスター 基礎編〜Linux&FreeBSDを使いこなすための第一歩〜』など著書多数。



前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。