Emacs не может заставить Flymake работать на Emacs 24 (Linux) - PullRequest
1 голос
/ 23 ноября 2011

Добрый день, когда я загружаю любой исходный файл в редактор, я получаю следующее сообщение:

File mode specification error: (wrong-type-argument stringp nil)

и flymake просто не работает тогда. Начиная с --init-debug ничего не улучшается. Любая идея, как отладить причину проблемы?

1 Ответ

3 голосов
/ 23 ноября 2011

Эта общая ошибка выдается, когда функция Lisp фактически ожидает строковый аргумент, но получает nil.

Попробуйте установить (setq debug-on-error t) в верхней части .emacs , чтобы получить трассировку стека, показывающую, какая строка является nil. В случае, если ошибка вызвана настройками FlyMake в вашем .emacs : здесь - хорошее введение.

Более глубокая причина исключений wrong-type-argument заключается в том, что функции Lisp не имеют прототипов и не могут полагаться на интерпретатор; они всегда определены и, следовательно, должны анализировать свои аргументы самостоятельно.

Сам интерпретатор Emacs Lisp не выполняет проверку типа фактические аргументы, передаваемые функциям при их вызове. [...] Таким образом, каждая отдельная функция должна проверить фактический аргумент принадлежит типу, который может использовать функция.

Для получения дополнительной информации см. Тип предикатов в Справочном руководстве по Emacs Lisp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...