@kyanny's blog

理想主義のない現実主義は無意味である。現実主義のない理想主義は無血液である - ロマン・ロラン フランス思想家

Spacemacs: eyebrowse に奪われた C-c C-w を取り戻す

きっかけは re-builder で組み立てた正規表現を kill ring に保存しようとしたとき C-c C-w が上書きされていたこと。

f:id:a666666:20200705012717p:plain

eyebrowse というパッケージが C-c C-w を奪っていた

eyebrowse が C-c C-w を占有しているのはマナー違反とみなされるらしく、別のキーバインドに逃す方法が紹介されていた。

この問題をめぐる顛末

作者の立場からすると、つい最近ドキュメントを修正したばかりの箇所についてまた同じイシューが立ったのでイラッとしたのだろう。気持ちは分からなくもないが...。

C-c C-w を取り戻す

C-c w に逃してもいいけど、使うつもりがないので*1キーバインドを割り当てたくない。で、こうした。

(defun dotspacemacs/user-init ()
  (setq eyebrowse-keymap-prefix "")
  )

空文字列を渡せばいけた。 nil を渡したら Spacemacs の起動時にエラーが出た。

失敗談

最初は bind-key で reb-mode-map 内だけで C-c C-w を書き換えた。動くは動いたが which-key が出すキーバインド一覧からも消えてしまった。

(defun dotspacemacs/user-config ()
  (bind-key* "C-c C-w" 'reb-copy reb-mode-map)
  )

f:id:a666666:20200705012230p:plain

C-c C-w を忘れる可能性もあるので、ちゃんと出てきて欲しい。ここに再び登場させるための設定方法を探したりもしたが、そもそも C-c C-w はどこで定義されてるの?という筋から追って、 prefix を変える方法にたどり着いた。 prefix を変えたら which-key にもちゃんと reb-copy が現れるようになった。めでたしめでたし。

f:id:a666666:20200705012507p:plain

*1:そもそも何をするパッケージなのかも知らない