日目の記事になります。乗り換えを検討している方向けの記事となっております。本題に入る前に、少しだけ自己紹介(主に社内向けアピール)をさせてください。プログラミング言語論や分散処理に興味があり勉強しています。何でも読み書きします。微妙に読み書きできます。フロントエンドの開発をしています(とても楽しいです)。エディターを制して人生を制するエディターのカスタマイズ、していますか?エディターをカスタマイズすることは、コーディングという体験をより心地よいものにすることであり、エンジニアの人生を豊かで華やかにするための一つの手段であると私は考えています。エンジニアは毎日エディターと向き合い会話をしています。キーを押すかもしれませんが)。それはそれはとても楽しいものです。今会話しているエディターも、いずれ歳を重ねて老朽化しまうかもしれません。テキストの編集はこれまで通りしてくれるかもしれませんが、新しい言語や開発スタイルにはなかなか順応してくれなくなってしまうことでしょう。まわりがもう少し整理されたらよかったのですが)。乗り換えを決行したのですが、その際にボトルネックとなったのは、やはりキーバインディングとマーク・リージョンでした。一通り設定が完了するまで一時的に生産性が落ちるというのには、なかなか辛いものがあります。いくつか存在しており、もちろん素晴らしいものもたくさんあります。キーバインディングに開発者独自のものが含まれていたりと開発者の思想が色濃く出ている感が否めませんでした。設定することで理想に近づけることは容易いことでした。マーク・リージョンの方はマルチカーソルに対応していなかったり、組み込み以外のコマンドに対しての拡張性が乏しかったりと、私には許容できない部分がありました。自作することを決意しました。実装や、その紹介記事を大いに参考にさせていいただいております。二番煎じとなっておりますので、あしからずご理解ください。限らず多くのエディターでは、基本的な拡張機能は「コマンド」をエントリーポイントとして提供されています。キーを押すと一覧で表示されるアレです。カーソル移動等を含めほとんどすべてのキー操作がコマンドにバインドされており、ユーザーは裏側でコマンドが実行された結果としてのカーソル移動や文字入力という体験を得ています。したがって、なんらかの機能を独自実装したい場合、その機能をコマンドのインターフェイスに落とし込んで提供することが基本的なアイディアとなります。試してみると理解できるようになります。ここではその一部を紹介します。実行環境が準備されていることを前提とします。作成したい任意のディレクトリにて下記のコマンドを実行して、テンプレートを生成していきます。使用してもよいと思います。