Vim

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
ナビゲーションに移動 検索に移動
Vim
初版 1991年(一般公開年。それより前から開発は進められていた)
リポジトリ https://github.com/vim/vim
ライセンス チャリティーウェア(GPL互換)
対応OS クロスプラットフォーム,主にGNU/Linux,UNIX,Windows,macOS
種別 テキストエディタ
公式サイト https://www.vim.org
テンプレートを表示

Vim(ヴィム)は、GNU/Linux界隈での定番テキストエディタの一角。
オープンソースかつクロスプラットフォームであり、UNIXWindowsmacOSなどへも移植されている。

成り立ち[編集]

前身:vi
まず、BSD創立者のビル・ジョイさんがテキストエディタ「vi」を作成。当初はビルさんが自分で使う用。まだライセンスがどうこうと騒がれるより前の昔の話であり、純粋なviには少数ながらプロプライエタリなコードが含まれている。
現在からみれば独特の操作方法だが(当時はそうせざるを得ないコンピューター環境だった。矢印カーソル移動キーが存在しない等)、慣れれば入力編集が早いとのことで一定のファンを得た。
現在から見ればカスタマイズできない、Vim Scriptなんてものはない等、シンプルでコンパクトなエディタ。現在でも大多数のGNU/Linuxディストリビューションが、後述のVimの機能をあえて削ぎ落としたものをviとして標準添付している。
ルーターなどの組み込みLinux機器など、最小限のUNIX/Linux環境でもviだけは利用できる場合があり、サーバー管理者などのITエンジニアであれば最低限のvi操作を覚えておいて損はない。
そしてVimへ
独特の操作方法ながら、慣れれば入力編集が早いとのことで一定のファンを得たviエディタ。真似して作成されたviクローンも複数誕生。
オランダのプログラマー、ブラム・ムールナーさんもクローン作者の1人。ある日新しく買ったパソコンに対応したviがまだ存在しなかったのを機に、他機種のviクローンを元にしてVimを作成。
早くからオープンソースとしてソースコードを公開し、世界中から改善点を募っており、Windowsへの移植など大きく発展を遂げ、今やLinux系に限らない一大勢力を築き上げている。

機能・特徴[編集]

(以下に記述されているVimの内容は、viにおいても出来ること・viでは出来ないことが混在している。viはほとんどカスタマイズできないし、Vim Scriptに相当する機能は存在しない)
モードの概念
vi/Vimは起動直後の、編集コマンドを受け付けている状態(文字入力モードではない状態)を「ノーマルモード」と呼ぶ。カーソル移動、文字列検索、コピー、貼り付けなど、文字入力以外の編集操作のほとんどはノーマルモードで行う。
他エディタは例えば「Ctrl+Cでコピー、Ctrl+Vで貼り付け」だが、Vimでは「ノーマルモードでyコマンドでヤンク、ノーマルモードで「p」(paste)コマンドで貼り付け」となる。
(Vimでは文字列コピーを「ヤンク」(yank:引っ張る)と呼ぶ。
考え方としては、他エディタで言う「Ctrlを押しながら〇〇」をVimにおいては「ノーマルモードで〇〇」と置き換える感じ。他エディタは文字入力モードがメインだが、Vimはノーマルモードこそがメインという考え)
Vimはノーマルモードを基本とする複数の「モードを持つエディタ」とよく言われる。
  • ノーマルモード:通常モード、編集モード。カーソル移動・文字列選択・コピー・切り取り・貼り付け・検索など、文字入力以外のほとんどの編集操作を行う、Vimの基本となるモード。他モード中にESCキーを押すとノーマルモードへ戻る。
  • 挿入モード:入力モード。ノーマルモードから「i」(insert)または「a」(add)コマンド等で遷移し、ESCで入力を確定してノーマルモードへ戻る。キー入力された文字を実際に入力するモード。他エディタはCtrlを押していない入力モードこそが通常モードだが、Vimでは挿入モードに入るコマンドを「数あるノーマルモードコマンドのうちの1つ」くらいに考える。
  • EXコマンドモード:頭に「:」(コロン)がつくEXコマンドを入力するモード。ファイル読み込み・保存・特殊コマンド実行・エディタ終了など、テキスト編集を側方支援。「:」を入力するとコマンドモードへ遷移し、続けてコマンドを入力。
例)ノーマルモードで「:e 」(edit)に続けてファイルパスを入力するとファイルを開く。同じくノーマルモードで「:w」(write)と入力するとファイルを上書き保存。「:q」(quit)と入力するとVimを終了。
  • 他にも置換モード「r」(replace)・選択モード「v」(visual)などいくつかあるけど、慣れないうちはあまり意識しなくてOK。操作が分からなくなったらESCを連打すればノーマルモードへ戻る。
中毒者は「今どのモードか」をほぼ意識せずに高速に遷移しながら「ピアノを奏でるように」編集を進める。
「別に他エディタでCtrlキーを押しながら作業すればいいんじゃない?」
うん、そうだね、否定はしない。実際、vi系以外の多くのエディタはそうしている。Vimは「ホームポジションとCtrlキーを往復する」操作の代替策を提供しているとも言える。でも結局はノーマルモードに戻るためにホームポジションとESCキーを往復するんだけど。
コマンドの組み合わせ・繰り返し
Vimの編集コマンドのほとんどは英小文字1字、もしくはShiftと一緒の英大文字、または記号となっている。この小さなコマンドを複数まとめて入力したり、数字と一緒に入力したりすることができる。
  • 「l」(エル)を1回押すと「lコマンド」(カーソルを1つ右へ)を実行
  • 「10l」とコマンド入力するとカーソルが10文字分右へ移動(lコマンドを10回繰り返す)
  • 「y10l」とコマンド入力すると、カーソル位置から右へ10文字分の文字列をヤンク(yank:引っ張る)
  • 「j」キーを1回押すと「jコマンド(カーソルを1つ下へ、すなわち次の行へ)」を実行
  • 「5j」とコマンド入力するとカーソルが5文字分下(すなわち5行下)へ移動
  • 「y5j」とコマンド入力すると、カーソル位置から下へ5行分をヤンク
  • 「w」(word)1単語分右へジャンプ、「b」(back)1単語分左へジャンプ。10wと入力すると10単語分右へジャンプする。y10wと入力すると10単語分ヤンク。
  • 「x」を押すと、カーソル位置の文字1つを切り取り、切り取った1文字をレジスタ(≒クリップボード)へ記憶。10xと入力するとカーソル位置から右へ10文字を切り取り、切り取った10文字をレジスタへ記憶(Vimにおける削除操作は他エディタで言う「切り取り」操作と同等。Vimでレジスタへ記憶することなく純粋に削除するにはむしろテクニックを要する)。切り取り系コマンドは他に「d」(delete)および「c」(cut)もある。
  • 「/」に続けて検索キーワードを入力すると、テキスト内を検索。或いは検索したい単語上にカーソルを置いた状態で「*」(アスタリスク Shift+「:」)を押してもテキスト内を検索。grep機能もあるが少々癖あり。
  • 「a」(add)を押して挿入モード(文字入力モード)に入り、文字「Enpedia」と入力、ESCで戻ると入力結果は「Enpedia」。「2a」とコマンド入力して文字「Enpedia」と入力しESCで戻ると入力結果は「EnpediaEnpedia」となる。
  • 数字+コマンドによる繰り返しとは別に、ノーマルモードで「.」(ドット)を入力することにより、(カーソル移動以外の)直前の編集操作を「繰り返す」ことが出来る。
例)「a」を押して挿入モードで「Enpedia」と入力しESCで戻ると結果は「Enpedia」。続けて「.」を押すと、直前の「a」コマンドの動作が繰り返され「EnpediaEnpedia」という結果になる。
例)「2a」を押して挿入モードで「Enpedia」と入力しESCで戻ると結果は「EnpediaEnpedia」。続けて「.」を押すと、直前の「2a」コマンドの動作が繰り返され「EnpediaEnpediaEnpediaEnpedia」という結果になる。
  • さらに「マクロ記録・再生機能」もある。ノーマルモードで「qq」と入力すると画面左下に「記録中 @q」と表示されコマンド記録開始。編集操作を行い「q」と入力すると記録終了。ノーマルモードで「@q」と入力すると、記録された編集操作が再生される。「2@q」と入力すると2回再生される。
  • 同じキーを連打するのではなく数字・ドット・マクロと組み合わせて指示することにより、打鍵数を極力減らすのがVimの考え方。慣れないうちはコマンド組み合わせが意味不明だが、コマンドひとつひとつの意味を覚え、最終的にやりたい操作を単純なコマンド組み合わせで簡潔に表現できるようになった時、編集速度が跳ね上がる瞬間が訪れる。
ただし、コマンドの組み合わせはつまりは編集キー操作の連続であり、別にVimだけの特徴というわけではない。Emacsは数字との組み合わせによる繰り返し操作もでき、その点においてはVimに似ている。
Vim Script
Vimは各種機能を自動的に実行する「Vim Script」機能を備えている。頻繁に入力するコマンドの組み合わせをスクリプトに記述しておき、簡単な操作で呼び出せるようにしておくことで、ただでさえ速い編集速度がもはや誰にも止められなくなる。
インターネット上で有志が作成した便利なスクリプトが「Vimプラグイン」として多数公開されている。コマンドの意味を変更するプラグイン、外観を変更するスクリプトなど多種多様なプラグインがあり、極めすぎたVimはもはや統合開発環境と見分けがつかない。
ただ、従来のVim Scriptは1行1行を律儀に実行している、文法仕様に曖昧な点がある等、今となっては性能面で不利になりつつある。Vimバージョン9では従来のVim Scriptに加えて、Vim Scriptとは互換がないVim9 Scriptが登場(従来のVim Scriptの廃止予定はなく、両方利用可能)。
或いは、Vimはいくつかの別言語インタフェースも内蔵しており、Vim Scriptの中でPerlRubyPythonのコードを呼び出すことも出来るし、さもなければ外部コマンド呼び出し機能を利用して別言語のスクリプトを実行する手も。
その他
  • VimはCUIアプリケーション(コマンドプロンプトのような、コマンド入力を受け付けるターミナル上で動作)であり、それ自体はGUI(WindowsやX Window Systemのようなウインドウ操作インタフェース)を必要としない。
設定カスタマイズはテキスト形式の設定ファイル(.vimrcまたは_vimrc)に記述することで行う。
(Vimに限らず、UNIX/Linux由来のアプリは「設定画面」が存在せず、設定ファイルへ記述するアプリが多い)
  • 上記の「i」や「j」等のコマンドはあくまで標準設定における話。Vimはほとんどの入力キー割り当てを変更可能。最も多用するESCキーの役割も、実際のキーボード上ではホームポジションからやや遠いこともあり、別のキーへ割り当てる中毒者は多い(挿入モードで入力中にjjと2度押すことで挿入モードを抜けるなど、頻度の低いキー操作を割り当てる)。
  • 行番号表示、長い1行を改行して表示、色付け(シンタックスハイライト)、巨大ファイルの扱い、複数の文字コード対応、外部コマンドとの連携など、高機能テキストエディタの定番機能を一通り揃えている。
ただしGNU/Linuxに最初から入っている最小構成のVimは最低限の機能以外ほとんどオフになっており、
  • フル機能バイナリをインストールするか、または自分でソースファイルからビルドする
  • その上で、設定ファイル(.vimrc)へ機能をオンにするよう記述
をいずれも実施する必要あり。
(例:OSのクリップボードとの連携は既定オフになっており、そのままでは他アプリとのクリップボードを介したデータ連携が出来ない)
  • Vimの設定ファイルはとどのつまりVim Scriptファイルであり、起動時に「設定を変更するVim Script」を実行している。そのVim ScriptもとどのつまりVimコマンドを順番に記述したもの。Windowsのバッチファイル、UNIX/Linuxのbashスクリプトに似ている。
  • Vim標準に存在しない、或いは標準では貧弱な機能でも、大体はVim Scriptやら外部コマンドやらで実現・強化できる。上記の通り有志作成のプラグインを導入するも良し。Vim Scriptを学んで自らプラグインを書くことで、より自分の好みに合わせた強力なエディタ環境が得られる。
例:文脈から次に入力されるだろう単語を推測・掲示してくれる単語補完機能は最低限のものがVim標準機能に含まれているが、外部ツール連携により単語補完を実現するプラグインを導入するのが一般的。

その他[編集]

物別れになった弟:Neovim
Vimはソースコードを公開して改善点を募ってはいるものの、あくまでブラム・ムールナーさん1人が最終責任者として、世界中から寄せられた改善点を吟味し、実際に配布物へ反映するという体制が長く続いた。改善点を反映したがために余計なバグを引き起こす場合も少なくないため修正の反映には慎重にならざるを得ず、要望に対する改善が追い付かない状況も見られた。
この、あまりにも保守的な「独裁」体制に異を唱えてNeovimが分岐。複数人で役割分担、もう誰も使ってない機能を削除して見やすく整理するなど、改善点の反映の迅速化を図っている。Vim9 Scriptを編み出した本家と、Vim Scriptに加えてLua言語への対応を推し進めるNeovim。Vimの修正点をNeovimにも反映したり、Neovimの新機能をVimに逆輸入したりする試みもないわけではないものの(他方の改善点を輸入するにしても単なる猿真似ではなくそれぞれの事情に合わせて別アプローチが採られる)、両者の相違点は徐々に広がりつつあり、界隈では「NeovimはVimと似た操作ができる別物エディタ」と解されている。
  • Vimは「保守」、Neovimは「革新」と解される。Neovimは新しい技術、新しい開発手法の取り込みに比較的積極的(もちろん必要性・難易度の吟味・取得選択はする)。Vimは今やvi操作テキストエディタ・コードエディタのデファクト・スタンダードの立場にあり、後方互換が失われるような破壊的変更は他の多くのプロジェクトにも大きな影響を及ぼしてしまう。開発チームが本当に必要と判断するまで提案が「スルー」されるのはよくあり、道のりが結構長い。
  • Neovimは機能・内部構造の整理整頓を徹底し、その上で新機能を追加している。コア部分については本家よりパフォーマンスが良いらしいが、新機能追加によるパフォーマンス影響と相殺され、重い・軽いという話に関してはVimとほぼ変わらない。
  • Vim設定ファイルが「.vimrc」に対し、Neovim設定ファイルは「init.vim」。ただし記述内容はほとんど同じ。
  • 設定のデフォルト値がVimとNeovimで少々異なる。Vimでほとんどの人が有効にする機能が、Neovimでは最初から有効になっていたり。
  • Neovimは独自に別言語インタフェースとして「Lua」を採用し、Vim ScriptだけでなくLuaでスクリプトを書くこともできる。Vim Scriptを廃止する予定は全く無いと明言されており両方利用可能であるものの、開発チームはLuaで書くよう推奨している。設定ファイルも「init.vim」に代えて「init.lua」で記述。
  • 実際、Vimでは動かないNeovim専用プラグインはそれなりに存在。Vim・Neovim両方で問題なく動作するプラグインの制作はなかなか大変。有名な両対応プラグインはメイン処理をPythonTypeScriptなど外部スクリプトで行うつくりが多い。
  • Neovimは本体機能はなるべく最小限に止め、その一方で他アプリ・ツールとNeovimを連携させるためのAPIを充実させている。NeovimユーザーはNeovimを中心としながら様々なアプリを併用する傾向。Vimも他アプリとの連携方法があるにはあるが、互換性を重視する影響なのかNeovimほどは充実していないかも知れない。
ライバルEmacsとの比較
同じくGNU/Linux界隈での定番テキストエディタの一角、Emacs。viからVimへ発展したのと同様に機能をもりもり詰め込まれ、強力なEmacs LISPによるスクリプトによりメールやらゲームやら割と何でもできる。人によってはEmacsはテキストエディタというよりもオペレーティングシステムであると表現される。
  • 「viは軽く、Emacsは重い」とよく言われる。viに関してはその通りだが、現在の高機能を備えたVimに間してはEmacsと大体同じくらい重い。それでも両者ともMicrosoft OfficeLibreOffice等のOfficeスイートより十分に軽い。
  • 冒頭のviの説明で「大多数のGNU/Linux環境にvi(機能を落としたVim)が入っている」と書いたが、フル機能Vimを使いたければ改めてインストールしなければならない点はVimもEmacsと変わらない。最近のGNU/LinuxディストリビューションにはEmacsも既に入っており、すぐに使い始めることが出来る。
  • EmacsもVim同様、GUIは必須ではなくCUIでも動作し(ただし現在のデフォルトはGUI)、マウスがなくてもキーボードでほとんど操作できる設計という点はEmacsもVimも一緒。そもそもVimの前身viもEmacsもどちらもGUIがまだ誕生する前の時代に誕生したもの。先に他の現代的なテキストエディタの操作を覚えた人にとってはEmacs操作も十分に独特。
  • Emacsはとにかく「Ctrlを押しながら何々」「Meta(WindowsではAlt)を押しながら何々」を滅多やたら多用する。Vimのノーマルモード機能をCtrlやMetaで代用していると言える。ただしVimでは多用しないかというとそうでもなく、VimでもCtrlやShiftをそれなりに多用するし、ノーマルモードへ戻るためにESCキーを滅多やたら多用する。
  • コマンドの繰り返し・組み合わせは何もVimに限らずEmacsでも同等機能を備えている。ただしCtrlやMetaを押しながらだけど。
  • vi派とEmacs派に分かれて、相手の弱点をディスり、自分が愛用するエディタを持ち上げるエディタ戦争は、きのこたけのこ戦争に似た中毒者達の定番ネタ…となっていたのも既に昔の話。最近は両者ともVisual Studio Codeの人気に押されている…。
vi操作が可能な他エディタ・アプリ
  • Vimとは直接関係のない、元のviを参考にしたテキストエディタが複数存在する。BSDにおける標準viであるnvi(オリジナルviからプロプライエタリなコードを除去したもの。Vim以上にviとの互換性が高い)、Windows移植のWinVi、同じくWindows用で独自路線を行くシェアウェアViVi。ライバルEmacsにてわざわざvi風操作を再現するEvilプラグインなんてものも。
  • プログラミング統合開発環境でもvi操作の需要は多いようで、vi操作を可能にするオプションが別途提供されているものがいくつかがある。VSCodeでvi操作をなるべく再現するVSCode Vim拡張またはVSCode Neovim拡張、或いはIntelliJJetBrainsでvi操作をなるべく再現するIdeaVim拡張など。当初はmacOS向けコードエディタとして誕生し、後にオープンソース化・クロスプラットフォーム化したRust製コードエディタZedはVimモードを実装。Vim Scriptの完全再現は流石に難しいものの、人気Vim Scriptの機能を自前で実現すべく努力が続けられている。
  • vi操作は最近のエディタ及びOS・Webブラウザ操作との剥離が大きく、vi操作を極めすぎてしまうと逆に現代の一般的なエディタ・Officeスイートやファイル操作でvi操作が出来なくて辛い。Microsoft Excelでセルに値を入力してEnterを押すはずがESCを押してしまい、入力結果を吹き飛ばすのはVim中毒者のお約束。
そのような末期中毒者のためか否か定かではないが、テキストエディタ以外でもbashにはvi風操作へ切り替えるオプションがあったり、Chrome・Edge・FireFoxなどのWebブラウザーにはvi風操作でWeb閲覧するための拡張機能が公開されている(Vimium拡張など)。vi風操作できるGNU/Linux用の画像ビューワ・PDFビューワもいくつかある。嘘か真か、Excelをvi操作するためのExcelアドオンまで存在するらしいが…。
マイクロソフト自身によりリメイクされたCUIエディタEdit (テキストエディタ)の登場時は「viモード実装されないかなぁ、楽しみだなぁ」と期待したんだけど…「vi操作は学習コストが高く、Windows既定のエディタとしてはふさわしくない」とバッサリやられてしまった。
不利な点
  • 一般に日本語など全角文字の入力は不得意とされる。英語などの言語はスペース区切りの単語で構成されており、Vimはこの単語という単位でカーソル移動するコマンドを多用するが、通常の日本語はスペース区切りという概念がなく、初期の頃のVimはどこからどこまで単語なのか判別できなかった。
例)ノーマルモードで「w」(word):1単語分右へジャンプ、「b」(back):1単語分左へジャンプ。「10w」と入力すると10単語分右へジャンプする。「y10w」と入力すると10単語分ヤンク。
ただし、日本語の単語区切りについては日本人パワーユーザーの長年の尽力により、現在のVimでは半角文字・ひらがな・カタカナ・漢字・句読点の区切りを単位としてジャンプできるようになっている。
例)「12345あいうえおカキクケコ漢字」というテキストの先頭(「1」の位置)にカーソルがある場合、
「w」を1回押すと「あ」の位置へジャンプ、「2w」と入力すると「カ」の位置へジャンプ、「3w」と入力すると「漢」の位置へジャンプ。
ハングル文字とか中国語はどうなんだろう?やはり得意とするのはプログラミング言語や設定ファイルの記述かと。
  • 単語ジャンプも問題だが、日本語IME(日本語入力システム)がオンのままではノーマルモードのコマンドを入力できない問題も大きい(全角文字は受け付けられず無効な入力として無視されてしまう)。挿入モード(文字入力するモード)からノーマルモードへ移る際に強制的にIMEオフにする等の回避策を適用する必要あり。下記「香り屋」版はあらかじめ回避策が組み込まれている。
こんな人にお勧め
  • 新しいことを覚えるのにそれほど抵抗がない。Vimにちょっと憧れている
一周回ってvi操作は新鮮とも言える。確かに学習の初期コストは高い。その初期を乗り越えた後に待っている超効率は、多数の中毒者達が保証している。下記外部リンクから「香り屋」版Vimをダウンロード・インストールし、チュートリアルコマンド「:Tutorial」を起動し、実際に手を動かすことをお勧め。何事もそうだけど、手を動かさないと覚えない。
  • UNIX/Linuxサーバーエンジニア等のIT技術者
Vimはそれ自体はGUIを必要とせず、CUIでも動作する。GUI機能がトラブった等、いざという時のトラブル対応でviエディタを使う場面があるかも知れない。Vimは設定ファイルやバッチ、スクリプト、プログラムソースコードの編集を得意としている。「設定画面」は存在せず、設定変更は設定ファイルへの記述により行う。一方でそもそもテキストエディタと縁が薄いライトユーザーには敷居が高い…。
  • サーバーエンジニアほどではないけどGNU/Linux・macOS利用の割合が多い
GNU/Linuxはテキストエディタ位以外にもvi操作が可能なアプリが比較的多い。macOSはUNIXの派生ということもあり、同じくvi操作の出番がある程度ある。Windowsにもないわけではないが…。
Vimはなるべくキーボードのみで完結、マウス操作を不要とするコンセプトで設計されている。スマホのフリック操作でVimを使いこなす末期中毒者もいるらしい…逆にキーボードが苦手でマウス操作ばかりという人には残念ながら不向き。
  • カスタマイズが苦にならない
スクリプトや外部ツール連携など、無限にカスタマイズ可能。逆に言うと最低限構成のVimはほとんどの便利機能がオフになっており、カスタマイズしない素の状態はシンプルすぎて正直使いづらい。GUIでの設定画面に慣れている人にはなかなかキツイ。調べるにもテキストエディタ用語などある程度の知識が欲しい。さりとてカスタマイズしすぎるくらいなら最初からVSCodeを使えよという身も蓋も無い意見も…下記外部リンク「香り屋」版Vimはあらかじめ日本人の利用に特化してカスタムされており、まずこちらを利用してみると良い。
  • ここまで書いておいてアレだが、vi操作は実際あまりにも独特過ぎて若い新規利用者には勧めづらく、オッサンのツールと言われても言い返せない。「Vimいいよ、慣れたら中毒になるよ」としつこく勧めてパワーハラスメントならぬエディタハラスメントになるのもイヤだし。中毒者になったらなったで、今度はvi操作が出来ない環境における禁断症状(作業効率低下)って実際キツイし。
  • 総じて、PC知識がまだ浅い初心者にVimはさすがに無理ゲー。いくつかのテキストエディタを利用した経験のある中級者が、それまでのエディタも引き続き使いつつ、少しずつ少しずつ慣れていくのが結局一番の近道。最初のうちは「j」や「l」でなく矢印キーでカーソル移動したっていい。最初のうちは挿入モード(「i」)のままカーソル移動したっていい。GUI環境であれば最初のうちはマウスを使ったっていい。とにかく少しずつVimを使う。小規模な編集をVimで行う。どうしてもvi操作が合わない、急いでテキストを書き上げなければならないときは一旦元のエディタへ戻っていい。Vimやvi操作エディタは世界規模の派閥を持ち、まだまだ廃れることはないと考えられる。また興味が再燃したら再挑戦すればいい。
作者:ブラム・ムールナーさん
オランダ出身のプログラマー、ブラムさん。界隈ではVim作者として有名だが、それ以外にもプログラム支援ツールを開発したり、後述の慈善活動に関連したソフトの開発に関わっていたり。Google社員だった時期もあったそうな。
プログラマー稼業と同じくらい慈善活動に情熱を傾けており、オランダの子供支援基金へ参加したり、Vim起動画面にてウガンダの子供たちへの支援を呼びかけたり。こういった、完全無償で利用可能だがチャリティーを呼びかけるソフト(チャリティーウェア)の元祖と言われているとか。作者への寄付をお願いするカンパウェアとは意味合いが少し異なる。
慈善活動も兼ねてウガンダはじめ世界中を旅して回っていた。2018年11月、Vimの日本国内カンファレンスへの招待に応じて来日。Vimの次期機能について公演を行った。
Vimが世界的に有名になり、多くのボランティア貢献者に支えられるようになってからは、唯一の作者ではなくVim開発チームの代表者、開発の最終責任者という立ち位置へ変化(優しい終身の独裁者)。寄せられたVimの改善点は、最終的にはブラムさんが内容を確認し、ブラムさんが実装可否を判断し、ブラムさんの手だけでようやく実際に反映されるという体制。
しかしながら、良くも悪くも「独裁」は長続きしない。ふと体調を崩してからあまりにも急速に病気が進行し、2023年8月に62歳で死去。あまりにも急な訃報、かつ上記のようにVimの開発は独裁体制であったことから、直後のコミュニティにも少なからず混乱が見られたものの、数を絞って共同代表者を立て(日本人2名が含まれている)、これまでのブラムさんの役割を継承しつつ、代表メンバー間で話し合ってVimの方針を決定する体制へ移行。物別れになったNeovimと似たような体制になりつつあるのも何かの因果か。
モダンなエディタとはかけ離れているVimだけど、新規Vimmerを志す若人が大きく増えるかは微妙だけど、それでも世界規模の派閥を抱え、支持され続けているVim。ブラムさんがいなくなっても、世界中の中毒者達がしっかり引き継ぎ、発展を続けていくだろう。

参考文献[編集]

関連項目[編集]

外部リンク[編集]