• 2025-03-07の日報

    2025年3月7日

    今日やったこと

    引越し

    ジェイコムから電話がかかってきたのでその対応をしていた。

    電話だと重要情報聞き逃してそうで怖いところある...

    Emacs

    テンプレートをyasnippetからtempelに変更していた。

    capfとの連携がイマイチだと感じていたのが主な理由。

    yasnippetとcapfを連携させる方法として、yasnippet-capfがある。

    ただ、これを使うとスニペットの名前が確定した時点でyas-expandされて自動でスニペットが挿入されてしまう問題がある。(いわゆる暴発)

    例えば、TypeScriptでclassと入力した時に同名のスニペットが選択されて勝手に挿入されてしまうので非常に困る。 この問題はyasnippet側にあると思っていたので色々試してはいたものの、最終的にyasnippet-capfに問題があるのが分かった。

    という訳で本体にcapf(corfu)との連携機能が組込まれているtempelを使う事にした。

    corfuと同じ作者さんであることからも相性が良くて快適に使えている。 capeも使っているので、その連携機能もあるのはありがたい。

    また、yasnippetと同様にtempelにもtempel-collectionっていうスニペットのコレクションがある。


    僕はスニペットを主に日報で使っているのだけど、そもそもこれはバッファ生成時に挿入されていて欲しいので自動で挿入するプラグインについても調べていた。

    するとaas.elというプラグインを見つけたのでそれを導入してみた。

    が、任意の文字を自動的に置き換える感じのプラグインっぽくて使うのを断念した。おとなしくauto-insert-modeを使ってみる。

    (define-auto-insert (expand-file-name "~/.ghq/github.com/Comamoca/blog/src/blog/.*\\-diary.md")
        (lambda ()
          (tempel-insert 'diary)
          (save-buffer)))

    define-auto-insertを使うことで挿入する内容をLispで記述できる。 tempelは(tempel-insert テンプレート名)で任意のテンプレートを展開できるので、それを呼び出してスニペットを展開している。

    aas.elを使うのを断念したと先述したけれど、バッククォートを展開するのにめちゃくちゃ便利だったので続投している。

    (aas-set-snippets 'global
      "`" '(tempel "`" p "`"))

    tempelの記法を設定できるので非常に便利。

    明日以降やりたいこと

    実家の片付けの手伝いをするので、あんまりEmacsはできないかなと思っている。 もし時間あったらaiderを触ってみたいし、そろそろEmacs関連の記事とかも書いていきたい。


    ko-fi ☕GitHub Sponsors 🐙