実行すると
$ emacsclient foo
Waiting for Emacs...
*ERROR*: Wrong number of arguments: #, 5
というエラーが出て Emacs 側のバッファーが開かない.
これはとても困るので調べた.
上記のエラーを検索すると, 2020 年にすでに報告されていて, 解決方法も server-switch-buffer: Adjust advice for emacs 28 で提示されている.
server-switch-buffer--with-editor-server-window-alist という関数は with-editor.el という Emacs Lisp ファイル内で定義されている.
そして, 自分の Emacs 環境では with-editor.el というファイルは
(1) \$HOME/.emacs.d/elpa/with-editor-20190715.2007/with-editor.el
(2) \$HOME/.emacs.d/elpa/with-editor-20201030.1232/with-editor.el
(3) \$HOME/.emacs.d/elpa/with-editor-20220608.1017/with-editor.el
の 3 種類存在する. 上記のサイトで提示されたパッチが適用されているのは (2), (3) で, 古い (1) には適用されていない.
ところが, Emacs は (1) の古い with-editor.el を呼びに行っていて, その結果上記の emacsclient のエラーが発生している.
なぜ古い方のファイルを参照するのか, 理由はわからない.
それで, 次の作業を行った.
パッチが適用されている (2), (3) の with-editor パッケージを残して, 古い (1) を削除する.
native lisp のキャッシュも削除する.
$ cd ~/.emacs.d/elpa
$ rm -rf with-editor-20190715.2007
$ cd ~/.emacs.d/eln-cache
$ rm -rf *
これで Emacs を起動し直したところ, emacsclient が正常に動作するようになった.
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image