Vi

vi (ヴィーアイ) とは



viは、Emacsと並びUNIX環境で非常に人気のあるテキストエディタです。ビル・ジョイによって開発され、その名前は「visual editor」または「visual interface」に由来するとされています。現在、多くのUnix系OSに搭載されているviは、実際には上位互換のVimやnviであることが一般的です。これは、viコマンドを実行すると、内部的にVimやnviが起動するよう設定されているためです。

誕生の背景



viは、Berkeley Software Distribution (BSD) の創始者であるビル・ジョイが、最初のBSDをリリースする際に使用していたPascalコンパイラの開発を効率化するために作成されました。当初はPascalソースコードに付属しており、単体のソフトウェアとしてはあまり知られていませんでした。この初期段階では、viは行単位で編集を行うラインエディタ「ex」として機能しており、現在のようなスクリーンエディタではありませんでした。

その後、カリフォルニア大学バークレー校にLear Siegler ADM-3A端末が導入されたことを機に、ビル・ジョイ自身が大幅な改良を加え、現在のviが誕生しました。

vi の特徴



viは他のテキストエディタとは異なるいくつかの特徴を持っています。

  • - マウスを使わない: viが開発された当時、マウスは存在していましたが、まだ一般的ではありませんでした。
  • - カーソルキーを使わない: 開発に使用されたADM-3A端末には、専用のカーソルキーがありませんでした。
  • - 命令を覚える必要がある: 画面上に命令が表示されないため、ユーザーはコマンドを覚える必要があります。

これらの特徴は一見欠点のように思えるかもしれませんが、使いこなすことで高速なカーソル移動や編集操作が可能になり、作業効率が向上します。また、マウスやカーソルキーに依存しないため、これらのデバイスが利用できない環境でも使用できます(ただし、Vimのようなviクローンには、GUIやカーソルキーをサポートするものも存在します)。

vi の設計思想



viは、ラインエディタ「ex」を祖先としており、その多くの特徴を受け継いでいます。ラインエディタでは、編集対象の行を抽出、編集、更新するというサイクルで作業を行います。これは、現在の主流であるスクリーンエディタのように、内容の閲覧と編集が一体化しているわけではありません。exでは、特定のパターンに一致する行の置換や、外部コマンドによるフィルタリングなどの機能が充実しており、プログラムインタプリタのような役割も果たしていました。

viは、exを拡張したもので、閲覧・抽出部分をフルスクリーンに対応させ、独自の移動コマンド体系を導入しました。そのため、分類上はスクリーンエディタに属しますが、その設計思想はビューワーを伴うラインエディタに近いと言えます。このため、特にWYSIWYG(What You See Is What You Get)に慣れたユーザーには、viの独特な操作体系は戸惑いを与えることがあります。最も特徴的なのは、初期状態ではキー入力がテキスト入力ではなく、編集コマンドとして解釈される点です。そのため、viは「モードを持つエディタ」と呼ばれることがあります。

viが開発された1976年当時、ビル・ジョイは300baudから1200baudの低速モデムを使用していました。そのため、viはこのような環境下での利用を想定して設計されています。

exコマンド



viはexのスーパーセットであるため、exの編集機能はすべてviで使用できます。これらのコマンドは「exコマンド」と呼ばれ、コマンドモードで「:」に続けて入力します。「:」の代わりに「Q」と入力すると、exモードに入り、exコマンドが利用できます。例えば、ファイルを保存する「:w」や、エディタを終了する「:q」などがexコマンドに該当します。これらは編集のメタレベルに関わる操作や、特定の行番号や正規表現に一致する行に対する編集、マクロ機能などを提供します。また、厳密には「i」や「a」などのインサートモードに移行するコマンドもexコマンドの略記とみなされます。

その他の特徴



viはコンパクトで負荷が小さいため、テキストファイルの一部を編集したり、低速なネットワーク環境で作業するのに適しています。また、その軽量さから、最小限のUNIX環境にも含まれていることが多く、スマートフォン、無線LANルータ、液晶テレビなど、Linuxをコアシステムとして採用している多くのハードウェアにviまたはvi互換のエディタが搭載されています。

vi互換エディタ



現在、PC-UNIX環境ではオリジナルのviが使われることは少なく、その機能を模倣したvi互換エディタ(クローン)が広く利用されています。多くのディストリビューションでは、viのシンボリックリンクが互換エディタに接続されています。これらの互換エディタはオープンソースプロジェクトによって開発されていることが多く、macOSやAndroidといったLinuxベースのOSはもちろん、MS-DOSやWindowsといった他のプラットフォームでも実行可能なものが存在します。

主なvi互換エディタ:

  • - nvi (nex/nvi): 4.4BSDでex/viの代替として提供されたエディタ。BSDライセンスで配布され、オリジナルのviの動作との互換性(バグを含む)があります。
  • - Vim: viを大幅に拡張したエディタ。多くのLinuxディストリビューションやmacOSに標準搭載されており、viコマンドはVimのviモードへのシンボリックリンクになっています。
  • - elvis: Steve Kirkendallによって開発された、強力なex/viクローンです。
  • - WinVi: Windows向けの軽量なviエディタ(同名の海外版とは別の国産エディタです)。

POSIX標準:

viとその原型であるexは、POSIX標準によって標準化されています。

参考文献



  • - Linda Lamb、Arnold Robbins『入門 vi 第6版』福崎俊博訳、オライリー・ジャパン、2002年5月、ISBN 4-87311-083-1
  • - Arnold Robbins『viデスクトップリファレンス』日本ルーセント・テクノロジー株式会社訳、オライリー・ジャパン、1999年6月、ISBN 4-900900-94-X

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。