エディタ戦争
vi と Emacs の重要な違いは次の通りである:
vi はモードのあるエディタであるが、Emacs にはモードがない。vi ではテキストの変更やカーソルの移動を非常に単純なキー入力のコマンドで行うため、それらコマンドとテキスト内容としてのキー入力の区別が必要となる。結果として、ユーザーはテキスト入力モードとコマンド入力モードを切り替えながら編集を行うことになる。
vi は小型で高速だが、(少なくとも本来は)カスタマイズがあまりできない。Emacs は低速(特に立ち上げ時)だが、カスタマイズは無制限である。
GNU Emacsはテキストモードのコンソールのほか、グラフィカルユーザインタフェース (GUI) への表示をサポートしており、一般的には GUI アプリケーションとして利用される。一方 vi の標準的なサポートはテキストモードのコンソールに留まり、 GUI 環境では GUI 機能を伴うターミナルアプリケーションを介して利用される。また vi の派生版である vim には、 GUI 機能を備えた gvim というアプリケーションが存在する。(参考: http://www.vim.org/download.php#pc)
また機能セットと立ち上げ時間により、ユーザの利用形態にも差異が生じる傾向がある。
vi ユーザーが外部コマンドを実行する場合、 vi のコマンドモードは用いられず適宜 vi は終了され、UNIXシェルからコマンドが実行される。 一方、 Emacs のユーザーが外部コマンドを実行する場合、 Emacs は終了されず組み込まれたシェルモードを介してコマンドが実行される。