2022-02-20

Emacs on Windows: Markdown command *** is not found

先日、markdown-mode が更新(v2.5)されていることに気が付いた。今使っているのが v2.3。あれ、v2.4 リリースには気付かなかったっけ?と思いながら v2.5 にして暫くした後、markdown コマンドが動かなくなっていることに気が付いた。

Markdown command markdown is not found

あー、なんか思い出してきた。昔 v2.4 にした時、やはり markdown コマンドが動かなくて v2.3 に戻したような気がする。v2.5 になっても直っていないということは、直す気がないか、私の環境がニッチなのだろう。このままずっと v2.3 というのも嫌なので、面倒だが調べてみる。

私の環境は MSYS2 + NTEmacs。M-! (shell-command)では markdown コマンドを実行できる。しかし markdown-mode からだと見つけられない。

      (when (and (stringp command) (not (executable-find command)))
        (user-error "Markdown command %s is not found" command))

上記が問題の部分。

(executable-find "markdown")
nil

(locate-file "markdown" exec-path)
"c:/home/user/bin/markdown"

これだ。私の場合、markdown コマンドは Ruby スクリプトだ。MSYS2 からは実行できても、実行ビットを解さない NTEmacs には単なるファイルにしか見えない。幸い、markdown-command にはリストも設定できるので、下記のようにして解決した。

(when (executable-find "env")
  (setq markdown-command `("env" ,markdown-command)))

以上、結果からいうと、やはり私の環境のせいだった。しかし NTEmacs のことを考慮すれば、executable-find のチェックはやり過ぎのように感じる。単に locate-file にするか、そもそもチェックする必要があるのか?という気もする。困っているのが私だけなら良いのだが。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。