読んで試して!Vim! 4

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

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

萩原 佳明

2008年8月21日 20:00

シェルだって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」を確認してほしい。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る