Lem Advent Calendar 2023 - 他の人の.lem/init.lispを見てみる
これは Lem Advent Calendar の記事です。
lemの初期化ファイルは $HOME/.lem/init.lisp です。
このファイルが存在するとlemの起動時にそのファイルがloadされ、エディタを拡張することが出来ます。
原理的には何でも書けてしまうのですが、キーバインドやカスタマイズのための変数を設定したり、コマンドを定義する事を想定してます。
今日はインターネットに存在するlemのcontributorの.lemを勝手に見ていく回です。
github.com/fukamachi/.lem
一つ目は深町さんのリポジトリです。
Common Lispによる数々のwebフレームワークやテスティングフレームワークの作者です(いつもお世話になっています)
.lem内をasdfで管理しているようです。
lem-my-init.asdから.lem/modes/ディレクトリの各ファイルを読み込み、モード単位で設定が書かれています。
vi-modeやpareditを使っていたり、lem-vi-sexpというextensionを作って使っているのが特徴的です。
github.com/vindarel/lem-init
続いてvindarelのリポジトリです。
init.lispを見るとSDL2版を使っているようです。
以下の設定は開いたファイルがpdfかmp4のときに外部ライブラリを起動する設定です。 この辺りからlemをpdfやmp4のランチャーとしても使っているように見えるのが興味深いです。
ちなみに、この方はudemyでCommon Lispの講師もやっています。
codeberg.org/sasanidas/lem-config
最後はsasanidasのリポジトリです。
lispディレクトリに必要なライブラリをバンドルし、initsディレクトリにlemの初期化ファイルを置いているようです、おそらくこれが一番大きな.lemではないでしょうか。
Common Lispの他にSchemeやJavaScript, Elixirなどを使っているのがわかります。
emacsclientを呼び出しlemからemacsを操作しているらしくとてもユニークです。
おわりに
ここではlemのコントリビュータの人達の.lemを見ていきました。
他にもGitHubで.lem language:"Common Lisp"で検索するといくつか見つかります。
こうやって見てみると各人がそれぞれのlemの環境を持っており、また様々な人達がlemを使っているのが嬉しく感じますね。
Discussion