これまでは、コードを.emacsファイルにカットアンドペーストしていましたが、emacsにいくつかのMaven機能を追加することにしました。さて、これを台無しにした方法はわかりませんが、昨夜、M-x jarl-mvn-execを実行すると、タイトルに付けたエラーが発生し続けました。寝て翌日戻ってきましたが、まだどこにも行きません。
(defun jarl-get-pom ()
(concat (locate-dominating-file
(buffer-file-name
(current-buffer))
"pom.xml")
"pom.xml"))
(defun jarl-visit-pom ()
(interactive)
(find-file (jarl-get-pom)))
(defun jarl-mvn-exec ()
(interactive)
(switch-to-buffer (get-buffer-create "maven"))
(start-process-Shell-command "mvn-exec" "maven" "mvn" "-f" (jarl-get-pom) "compile")
(start-process-Shell-command "mvn-exec" "maven" "mvn" "-f" (jarl-get-pom) "exec:exec"))
確認するには、さらに多くの情報を提供する必要があります。設定してみてください
(setq debug-on-error t)
これにより、文字列がnilであることについてどの関数が不平を言っているかを示すスタックトレースが得られます。
私の推測はbuffer-file-name
はnilを返しますが、そこに問題があります(すべてのバッファにファイル名があるわけではありません)。 Emacs LISPのプログラミング入門 の debugging セクション、またはEmacs LISPマニュアルの debugging セクションを確認してください。
Initファイルで問題を見つける秘訣は秘密ではありません:バイナリ検索。
使用する comment-region
initファイルの半分をコメントアウトしてから、3/4、7/8、...問題を特定するのはvery迅速です。 comment-region
もコメント解除します:C-h f comment-region RET
。