неверный аргумент типа: stringp, nil - PullRequest
27 голосов
/ 24 марта 2011

До этого я только что вырезал и вставил код в мой файл .emacs, но потом решил добавить некоторые функциональные возможности maven в emacs.Теперь я не понимаю, как мне удалось все испортить, но прошлой ночью я продолжал получать ошибку, которую я вставил в заголовок, когда запускаю Mx 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"))

Ответы [ 2 ]

37 голосов
/ 24 марта 2011

Вам нужно будет предоставить больше информации, чтобы быть уверенным.Попробуйте установить

(setq debug-on-error t)

, который даст вам трассировку стека, показывающую, какая функция жалуется на то, что строка имеет значение nil.

Я предполагаю, что buffer-file-name возвращает ноль, и вот гдепроблема заключается (не все буферы имеют имена файлов).Ознакомьтесь с разделом debugging Введение в программирование в Emacs Lisp или разделом debugging руководства по Emacs Lisp.

14 голосов
/ 20 августа 2011

Секрет поиска проблемы в вашем файле инициализации не секрет: бинарный поиск .

Используйте comment-region, чтобы закомментировать половину файла инициализации, затем 3/47/8, ... очень быстро выявить проблему.comment-region также раскомментирует: C-h f comment-region RET.

...