世界中にテキストエディタは多数存在しますが、開発者にとっては自分の得意なプログラミング言語でカスタマイズできるテキストエディタが、真に使いやすいテキストエディタといえるかもしれません。
本日紹介する「Textbringer」は、なかでもRuby開発者の夢を叶えてくれるターミナルベースのテキストエディタです。
Ruby開発者として有名な前田修吾氏によって開発中のRuby製テキストエディタで(資料、ブログ)、Emacs風のキーバインディングが使用できます。
最終的な目標はMUA(メールユーザーエージェント)の実装にあるとのことなので、ターミナルベースのメールクライアントを探している方にとっても要注目のプロダクトかもしれません。
以下使用方法を説明します。
Textbringerの使用方法
Rubyの実行環境があればgemコマンドを利用してインストールできます(macOSで確認)。
$ gem install textbringer
ターミナルを立ち上げ「textbringer」を実行します。キーバインドはEmacsに準拠しているので、例えば「C-x C-f」を押せばファイルを開くことができます。
設定ファイルは「~/.textbringer.rb」です。
define_command(:test) {
insert("テストコマンドを実行しました")
Utils::message("ミニバッファです")
}
define_command(:fizzbuzz,
doc: "Do FizzBuzz from 1 to n.") do
|n = number_prefix_arg|
(1..n).each do |i|
insert ["Fizz"][i%3]
insert ["Buzz"][i%5]
insert i if beginning_of_line?
newline
end
end
~/.textbringer.rbはRubyプログラムとして実行され、define_commandによってカスタムコマンドを定義できます。コマンドの実行はEmacsと同様「M-x コマンド名」です。
▲「M-x test」を実行すると、カレントバッファに文字列が挿入されて、ミニバッファにもメッセージが表示されました。
▲「C-u 100 M-x fizzbuzz」を実行すると1〜100の間でFizzBuzzが実行されます。
このようにTextbringerの機能はRubyを使って自由に拡張していけるのです。
まとめ
Textbringerは現在開発中ということで、操作方法やマクロ機能など各種ドキュメントはまだ存在していないようです。とはいえ操作方法はEmacsユーザーにはなじみやすく、日本語に関する問題も存在しませんので、RubyとEmacsに興味のある開発者ならば使ってみて損はないと思います。
なおTextbringerという名前は、マイケル・ムアコックのファンタジー小説エルリックサーガシリーズに登場する魔剣「ストームブリンガー」にインスパイアされている模様。
Textbringerがストームブリンガーのように圧倒的な力を持つことになるのか注目です。