PR

あちこちを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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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

あちこちをViモードにしていこう | Think IT(シンクイット)

Think IT(シンクイット)

サイトに予期せぬエラーが起こりました。しばらくたってから再度お試しください。