web-dev-qa-db-ja.com

間違った型引数:stringp、nil

これまでは、コードを.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"))
27
HahaHortness

確認するには、さらに多くの情報を提供する必要があります。設定してみてください

(setq debug-on-error t)

これにより、文字列がnilであることについてどの関数が不平を言っているかを示すスタックトレースが得られます。

私の推測はbuffer-file-nameはnilを返しますが、そこに問題があります(すべてのバッファにファイル名があるわけではありません)。 Emacs LISPのプログラミング入門debugging セクション、またはEmacs LISPマニュアルの debugging セクションを確認してください。

37
Trey Jackson

Initファイルで問題を見つける秘訣は秘密ではありません:バイナリ検索

使用する comment-region initファイルの半分をコメントアウトしてから、3/4、7/8、...問題を特定するのはvery迅速です。 comment-regionもコメント解除します:C-h f comment-region RET

14
Drew