あちこちをViモードにしていこう

2008年8月21日(木)
萩原 佳明

シェルだってvi

 Linuxの標準シェルであるbashの編集コマンドは、デフォルトではemacs系のコマンド体系になっており、「Ctrl-A」で行頭に戻ったり、「Ctrl-P」で履歴をたどったりすることができる。実はこの編集モードをviにすることができるのだ。

 では早速やってみよう。シェルを起動したら以下を入力する。これだけで、bashがviモードに変更される。

$ set -o vi

 この状態で以下を入力してみよう。

$ ls -l

 これでファイルの一覧が表示される。ここで例えば履歴をたどろうとして、いつものように「Ctrl-P」としても、以下のように表示される。

$ ^P

 viモードになった今は、まず「Escキー」を入力してノーマルモードに移行、続いて「上」を意味する「K」をタイプすることで履歴がたどれる。

バイナリファイルだってvi

 いわゆる「バイナリエディター」もviモードで使うことができる。ただし、これを実現するには専用ソフトウェア「bvi」が必要だ。僕が確認したところ、Debian 4.0(Etch)やGentoo Linuxにはパッケージがあるが、CentOSには入っていなかったので、ここでインストール方法についても説明しておく。インストールは至って簡単だ。

 まずはbviのオフィシャルサイト(http://bvi.sourceforge.net/)のDownloadページから、パッケージを入手しよう。今回は2008年8月6日現在で最新版の「bvi-1.3.2-1.i386.rpm」をダウンロードした。ダウンロードしたら以下を実行する。

$ rpm -Uhv bvi-1.3.2-1.i386.rpm

 これでインストールは完了だ。起動はVimと同様、以下を実行する。

$ bvi /usr/bin/bvi

 大きなファイルの先頭だけを編集したい、というときは以下のようにサイズを指定することができる。

$ bvi -s 1000 CentOS5-s001.vmdk

 あるいは、以下のように編集するアドレスの範囲を指定すれば、「メモリ不足で起動できない」といったことも避けられる。

$ bvi -b 16 -e 256 CentOS5-s001.vmdk

 さて起動した後の操作は基本的にはviと同じだ。あくまでもviと同じであって、Vimほどは多様なコマンドを使えない。また、バイナリファイルを扱うという性質上、デフォルトでは挿入モードは使えず、「A」をタイプして追記モードに入るか、「D」でカーソル位置以降を削除するか、「R」で置換モードに入るか、ということになる。リスクを承知した上で挿入モードに入るときは「:set memmove」とする。

 バイナリ部分を検索するときは「/」や「?」ではなく「\」や「#」を使うなど、バイナリファイルを扱うことによる違いがいくつかあるが、詳しくは上記サイトの「Quick Tutorial」を確認してほしい。

1973年佐賀県生まれ。東京大学文科I類中退。株式会社アスキーで3年半ほど編集者生活を送った後に独立し、(有)プラスワンデジタルを設立。Webサイトの企画・運営やサーバ管理、プログラム作成などを担当。著書に「日本のSEはこれからどうなるのか」「これならわかる不正アクセス対策 入門の入門」(いずれも翔泳社)がある。http://www.p1d.com/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています