全能テキストエディタ「Vim」の歴史と開発者に広く普及した理由
MicrosoftのVisual Studio CodeやSublime Textなど、GUIで動作するテキストエディタが数多くリリースされる中で、コマンドラインベースで動作するテキストエディタ「Vim」は、リリースから約30年たった今でも多くの開発者に利用されています。そのVimがなぜ開発者に広く普及したのかを、Vimの歴史とともにソフトウェアエンジニアのNikola Đuza氏が自身のブログで語っています。
How Did Vim Become So Popular | Pragmatic Pineapple ????
https://pragmaticpineapple.com/how-did-vim-become-so-popular/
Đuza氏はVimを「全能」と評価するとともに「人々が時々引っかかる場所」とも表現。確かに、Vimにはノーマルモードと入力モードの使い分けなどといった特徴的な機能があり、デスクトップアプリのテキストエディタしか知らない人は困惑する点です。しかし、2019年にStack Overflowが行った調査では、Vimは開発者の使用する環境ランキングで5位に入っており、多くの開発者に利用されていることがわかります。
Vimが広く利用されるようになった理由を理解するためには、Vimの歴史の始まりまでさかのぼるのがいいとĐuza氏。最初期のプログラミングは、パンチカードに穴を開けることで行っており、パンチカードをコンピューターに正しい順序で読み込ませることでプログラムを実行していました。画像は6万2500枚にも及ぶパンチカードですが、このパンチカードに記録されているプログラムのサイズは4.5MBとのこと。
コンピューターの処理能力とストレージが増大し、プログラミングが進化すると、パンチカードは少し非効率になったとのこと。そこで登場したのが「ed」などのラインエディタです。edは最新のLinuxやmacOSでも利用することが可能で、ターミナルで「ed」と入力しエンターを押すと、テキストの入力画面に移行します。
「a」を入力してEnterキーを押し、挿入モードに入るとテキストを入力できます。挿入モードを終了したい場合は「.」を入力してEnterキーを押下。
「w」の後にテキストを書き込むファイル名を入力してEnterキーを押すと、ファイルにテキストを保存できます。
edを終了するには「q」を入力してEnterキーを押します。edにおけるこうした一連の操作はVimに通じるものがあるとĐuza氏。
edの後に「"editor for mortals"(人間のためのエディタ)」である「em」が開発され、1976年にemをベースとした「"extended ed"(edの拡張)」である「ex」が開発されます。exにはemの機能の他に、画面上にファイル全体を表示する「visual」モードが追加。これが「vi」の始まりで、その後1979年に、viはOSにコマンドとして導入されることになります。
現在でも、Vimでexのコマンド体系を利用することができるとのこと。Vimを開いて「:」を入力すれば、「a」の後にテキストを入力し「.」で入力を終了するといった、exの元となったedと同じ操作体系でテキスト編集ができます。
当時のコンピューターでファイルのテキスト全体を表示するのは非常にやっかいで、一部の人は資源の浪費だと考えていたとのこと。しかし、メリットが反対意見を上回り、編集中に画面上でファイルの内容を開くことが普通になったとĐuza氏は語っています。
viが登場して数年後、viのクローンが数多く登場したとのこと。その中のひとつが「Vi Improved」、つまり「Vim」です。Vim開発者のブラム・ムーリナー氏は当時、viのクローンである「STEVIE」を使ってみたところ、viのコマンドの多くが使えないことに気づいたとのこと。ムーリナー氏がviと互換性を持たせながら機能を追加してリリースしたのが「Vi Imitation」で、後に「Vi Improved」と改められます。Vi Improvedのバージョン2.0からvimコマンドが登場し、今日に至るとĐuza氏は語っています。
by Rob Collier
Vimが今日の名声を得た理由は「多くの優れた機能」と「高い互換性」であるとĐuza氏。下位互換性を保つための努力によって良いアイデアが蓄積された結果、多くのシステムに採用され、どこでも利用できるようになったとĐuza氏は語っています。
Đuza氏は「私はVimエディタに乗り換えるべきだと言っているわけではありませんが、Vimを学んで設定しようとすることは、スキルと能力の向上につながるでしょう」とする一方で「重要なのはどのエディタを使うかではなく、エディタを使って何をするかです」と語っています。
なお、Vimのカーソル移動に「h」「j」「k」「l」が使われているのは、viの開発者であるビル・ジョイ氏が当時使っていたキーボードに移動専用のキーがなく、「h」「j」「k」「l」にカーソル移動が割り当てられていたためだそうです。
・関連記事
オープンソース化されたMS-DOSのソースコードがGitHubで公開される - GIGAZINE
UNIX/Linuxでよく使われる「Daemon」(デーモン)プロセスの語源とは? - GIGAZINE
マッチ箱大のサイズのLinuxマシンをIntel Edisonで作る - GIGAZINE
Linuxのテキストエディタviとvimのグラフィカルなチートシート - GIGAZINE
Linuxの各種コマンドのチートシートに日本語版登場 - GIGAZINE
・関連コンテンツ