emacs のマッチングのパッケージをhelm からvertico に変更した話

これは2022/01/04のMK社内LTで発表した内容です.

前提

清水は普段emacs という古のエディターを使っています. 普段みなさんがお使いの、VSCode でCmd+P(Ctrl+P) とか Cmd+Shift+P(Ctrl+Shift+P) みたいなやつは、emacs の anything というパッケージで発明された概念です. 清水は5年くらい前にanything から helm というパッケージに移動して使っていたのですが、更新が滞っており、verticoというパッケージに移動しました. 年始1/2に半日ほどかけて設定しました.

Vertico の特徴

helm はc-l で上のディレクトリに移動する。補完がTABじゃない等、emacs のキーバインドからかなり離れた独自のキーバインドを持っており、そこが原因で結構嫌われていましたが、vertico はその辺りが改善されており、標準のemacs の操作ができるかたであれば誰でも割と簡単に利用が可能です.

関連パッケージ

vertico 単体では単純なフィルターだけをサポートしていて単体だけのインストールではあまりモダンな使い勝手にならず、辛いので関連のパッケージもインストールが必要です 参考: https://blog.tomoya.dev/posts/a-new-wave-has-arrived-at-emacs/

https://github.com/minad/ さん https://github.com/oantolin さん のパッケージを入れます

  • vertico: ミニバッファ補完UIだけを提供
  • consult: バッファの切替の補完や現在のワークスペースの全ファイルを検索して絞り込み(helm-projectile-ag) に対応するconsult-ripgrep を提供(rg コマンドが必要)
  • orderless: helm 的な順不同のスペース区切りのファジーなマッチを提供
  • marginalia: 補完項目に付帯情報を表示する(M-x でコマンドの一覧を出すとキーボードショートカットや、説明が表示される)

まだ困っているところ

  • c-l(1ディレクトリ上に移動する方法) がわからない
    • c-backspace で1文節を削除ですが git/github.com/mk-system から git/github.com/katsusuke に切り替えるときにキータイプが多いです
    • tam17aki 様に 情報 を頂き 無事に動きました
  • helm-swoop の代替が見つかっていない
    • 現在開いているバッファ(ファイル)を全文絞り込みマッチしたい
  • cosult-ripgrep でカーソル位置の単語をデフォルトにしたい

良かったところ

  • 見た目が今風になりました。VSCode使っている若者に負けないくらいかっこいいとおもいます.
  • 操作方法にトリッキーさが無いので普通に使いやすいです.
  • アップデートも早く継続的なアップデートが期待できそうです.
  • Webサイトの情報が充実しており use-package するだけで簡単に利用できました.

成果物

https://github.com/katsusuke/.emacs.d/blob/ef22b4737a57bbf970bd27a02b845e5382d03f0c/init.el

今後

Spacemacs の動向を注意深く見守っていきたいです。

この記事をシェア

弊社では、一緒に会社を面白くしてくれる仲間を募集しています。
お気軽にお問い合わせください!