LoginSignup
1
0

More than 1 year has passed since last update.

【なぜかは】elispの自作関数が急に動かなくなった。interactiveを入れたら直った【知らない】

Posted at

elispは1ミリも分からないけど、以下の自作関数をinit.elに入れて使っていた。
F9を押下するとfoo.shというシェルスクリプトが動くというだけのもの。

init.el
  (defun bar ()
    (shell-command "/シェルスクリプトが入っているフォルダの絶対パス/foo.sh"))
  (define-key global-map [f9] 'bar)

これがある日、急に動かなくなった。
F9を押下すると、以下のメッセージがミニバッファに表示されて、スクリプトは動かない。

  Wrong type argument: commandp, bar

なぜかは分からないけど、他の人が書いたelispの関数を参考に、省略していたinteractiveを入れてみた。

init.el
  (defun bar ()
    (interactive) ;;; ここだけが変更点
    (shell-command "/シェルスクリプトが入っているフォルダの絶対パス/foo.sh"))
  (define-key global-map [f9] 'bar)

これだけで、どういうわけか動くようになった。

なぜ以前はinteractiveなしで動いていたのが、今日急に動かなくなったのか、分からない。
いちおう今日の日付は 2022-07-15、M-x emacs-version は

  GNU Emacs 26.5 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.14) of 2020-03-26, modified by Debian

WSL2でUbuntuを使っていて cat lsb_release の結果は

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS"

である。何かご存知の方はコメント欄で教えてください。ひどくてスミマセン。
他の方で同じことで悩んでいる方があれば。

(この項終わり)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0