Vi

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

テンプレート:Infobox テンプレート:小文字 vi(ヴィーアイ)は、Emacsと共にUNIX環境で人気があるテキストエディタビル・ジョイによって開発された。名の由来はVIsual editorないしVisual Interfaceとされる[1][2]。後発のUnix系OSに搭載されているviは、上位互換のVimnviであることが多い(viコマンドでvimやnviが起動する)。

創始

BSDの創始者であるビル・ジョイが、最初のBSDを公開するにあたり開発していたPascalコンパイラを快適に作成するために開発したのが始まりである。当初はそのPascalのソースコードに同封され、その奥底に埋もれていたため、単体のソフトウェアとしての提供は認知されていなかった。この段階ではexと呼ばれるラインエディタであり、まだ現在のようなスクリーンエディタではなかった。

後にカリフォルニア大学バークレイ校にadm3a端末が導入されたのを機に、ビル・ジョイ自身により更なる改良を加えられたものが、現在のviと呼ばれるエディタである。

特徴

他のテキストエディタと異なる点

  • マウスを使わない(viの開発当時、マウスは発明されていたが普及していなかった)
  • カーソルキーを使わない(開発端末であるLear Siegler ADM3A端末装置には、専用のカーソルキーが設けられていなかった[3]
  • 命令を覚える必要がある(画面上に命令表示領域が無い)

このような特徴は一見欠点にも見えるが、慣れにより素早いカーソルの移動や編集操作ができ、作業効率が上がるようになる。また、マウスカーソルやカーソルキーの使用を強制していない為、それらが利用できないハードウェア上でも利用することが出来る。(Vimのようなviクローンの中にはGUIやIBM-PCの一般化により、使用できるものも存在する。)

設計思想

viはラインエディタのexを祖先に持ち、多くの特徴を受け継いでいる。

ラインエディタでは、目的の行を抽出、編集、更新というサイクルで編集を行う。現在主流のスクリーンエディタと異なり、内容の閲覧/編集はそれぞれ独立した機能であり、インタラクト(対話的)に動作しない。しかしそれだけでは利用が困難なので、exでは「特定のパターンにマッチする行内で内容を置換」「外部コマンドによるフィルタ」などのプログラムインタプリタ的な支援機能が充実している(sedは同様の背景をルールマッチ型に解釈したフィルタ記述インタプリタである)。

viはexのスーパーセットであり、閲覧・抽出に相当する部分をフルスクリーン/インタラクトに拡張して独立の移動コマンド体系を与えたものである。従って分類上はスクリーンエディタに含まれるが、設計思想はビュワーを伴うラインエディタに近い。

そのような背景から、特にWYSIWYGに慣れたユーザーに対して戸惑いを与えるユニークさが多い。有名なのは、初期状態で、打鍵した文字がテキストとして入力されるのではなく、編集コマンドとして解釈される点である。この理由で「viはモードを持つエディタ」と呼ばれる場合が多い。

exコマンド

viはexのスーパーセットなので、exの編集機能はすべてviでも使用できる。これをexコマンドと呼び、コマンドモードで : に続いて入力されるものが当たる。

例えばファイルを保存する :w やエディタを終了する :q など、編集のメタレベルに関わるもの、特定の行番号や正規表現にマッチする行アドレスに対して編集を行うもの、上記のマクロ機能などが含まれる。

(厳密にはiやaなどのインサートモードへ移行するコマンドもexコマンドの略記と見なされる)

その他の特徴

viはコンパクトで負荷が小さいため、作業中にテキストファイルの一部を書き換えたり、通信速度の遅いネットワークの先にあるマシンで編集したりといった作業に向いている。 また、コンパクトで負荷が小さいという利点から、最低限のUNIX環境でも含まれている事が多く、スマートフォン、無線LANルータ、液晶テレビなど、コアシステムとしてLinuxを採用しているハードウェアの多くにviもしくはvi互換のエディタが搭載されている。

vi互換エディタ

PC-UNIXに於いては現在はオリジナルのviが使われることはあまり一般的ではなく、模倣して作られたvi互換エディタ(クローン)の利用が一般的である。一般的なディストリビューションではviのシンボリックリンクがviの本来のパスに置かれ、互換エディタにリンクしている。また、オープンソースプロジェクトによる開発が多い為、UNIX系OSであるMacOSX、AndroidなどのLinuxはもとより、本来互換性のない独自環境であるMS-DOSWindowsといった他のプラットフォーム上で実行可能な互換エディタも存在する。

  • nvi: nex/nviは、4.4BSDにおいてex/viの代替としてカリフォルニア大学バークレー校がオリジナルに配布した。BSDライセンスで提供され本家viの動作とのバグも含めた互換性がある。
  • Vim: 高度にさまざまな設定が可能な、viを改善したエディタ。多くのLinuxディストリビューションに標準搭載されており、その場合のviコマンドはVimのviモードへのシンボリックリンクになっている。
  • elvis: Steve Kirkendallにより書かれた強力なex/viクローン。
  • ViVi: viコマンドをサポートするWindows用エディタ

関連項目

脚注

テンプレート:脚注ヘルプ テンプレート:Reflist

参考文献

外部リンク

テンプレート:テキストエディタ

テンプレート:Unixコマンド
  1. 大木敦雄監修 小島範幸・北浦訓行著 『はじめてのvi&Vim』 技術評論社、2009年、23頁。「viの名前の由来は、VIsual Editorです。」
  2. テンプレート:Cite web - ジャーゴンファイルのviの項で [from ‘Visual Interface’] と明記されている。
  3. テンプレート:Cite webテンプレート:Cite web および キーボードレイアウト図 - ADM3Aのキーh、j、k、lの上に、カーソルを示す刻印が設けられている。