太空机器人 "file mode specification error"
spacemacs "file mode specification error"
我是 运行 主分支上的最新版本的 spacemacs。在我的 init 文件中,我有许多 cc-mode 设置,包括(作为 c-offsets-alist 的一部分)“(innamespace . 0)”。我发现当我打开 C++ 文件时,出现错误 "File mode specification error: (void-function innamespace)".
这是完整的 c-offsets-alist 修改集:
(c-offsets-alist . ((access-label . -3)
(brace-list-close . 0)
(brace-list-entry . 0)
(brace-list-intro . +)
(class-close . 0)
(class-open . 0)
(defun-block-intro . +)
(defun-close . 0)
(defun-open . 0)
(inclass . +)
(label . 0)
(statement . 0)
(statement-cont . *)
(topmost-intro-cont . 0)
(arglist-close . c-lineup-arglist)
(block-open . 0)
(case-label . +)
(func-decl-cont . c-lineup-java-throws)
(inexpr-class . 0)
(inher-cont . c-lineup-java-inher)
(inline-open . 0)
(substatement-open . 0)
(innamespace . 0)
))
这是调试器的回溯:
Debugger entered--Lisp error: (void-function innamespace)
(innamespace 0)
(lambda nil (innamespace 0))()
run-hooks(change-major-mode-after-body-hook prog-mode-hook c-mode-common-hook c++-mode-hook)
apply(run-hooks (change-major-mode-after-body-hook prog-mode-hook c-mode-common-hook c++-mode-hook))
run-mode-hooks(c++-mode-hook)
c++-mode()
set-auto-mode-0(c++-mode nil)
set-auto-mode()
normal-mode(t)
after-find-file(nil t)
find-file-noselect-1(#<buffer geometry.cpp> "~/sandbox/cpp/geometry.cpp" nil nil "~/sandbox/cpp/geometry.cpp" (85065815 2049))
.
.
.
有趣的是,如果我实际上在命名空间内,cc-mode 会尊重我的命名空间设置。我什至在我的 init 文件中注释掉了设置,但仍然出现错误。关于如何处理这个问题有什么想法吗?
事实证明,毫不奇怪,问题不在我寻找的地方。除了我在原始问题中显示的包含 c-offsets-alist 值的设置包之外,还有一个我不记得添加的形式:
(setq c++-mode-hook
'(lambda ()
(innamespace 0)))
我想我是不小心把它放进去的 - 很可能是复制和粘贴的错误。让它成为一个警示故事 - 我应该在发布我的问题之前抓住这个问题。
我是 运行 主分支上的最新版本的 spacemacs。在我的 init 文件中,我有许多 cc-mode 设置,包括(作为 c-offsets-alist 的一部分)“(innamespace . 0)”。我发现当我打开 C++ 文件时,出现错误 "File mode specification error: (void-function innamespace)".
这是完整的 c-offsets-alist 修改集:
(c-offsets-alist . ((access-label . -3)
(brace-list-close . 0)
(brace-list-entry . 0)
(brace-list-intro . +)
(class-close . 0)
(class-open . 0)
(defun-block-intro . +)
(defun-close . 0)
(defun-open . 0)
(inclass . +)
(label . 0)
(statement . 0)
(statement-cont . *)
(topmost-intro-cont . 0)
(arglist-close . c-lineup-arglist)
(block-open . 0)
(case-label . +)
(func-decl-cont . c-lineup-java-throws)
(inexpr-class . 0)
(inher-cont . c-lineup-java-inher)
(inline-open . 0)
(substatement-open . 0)
(innamespace . 0)
))
这是调试器的回溯:
Debugger entered--Lisp error: (void-function innamespace)
(innamespace 0)
(lambda nil (innamespace 0))()
run-hooks(change-major-mode-after-body-hook prog-mode-hook c-mode-common-hook c++-mode-hook)
apply(run-hooks (change-major-mode-after-body-hook prog-mode-hook c-mode-common-hook c++-mode-hook))
run-mode-hooks(c++-mode-hook)
c++-mode()
set-auto-mode-0(c++-mode nil)
set-auto-mode()
normal-mode(t)
after-find-file(nil t)
find-file-noselect-1(#<buffer geometry.cpp> "~/sandbox/cpp/geometry.cpp" nil nil "~/sandbox/cpp/geometry.cpp" (85065815 2049))
.
.
.
有趣的是,如果我实际上在命名空间内,cc-mode 会尊重我的命名空间设置。我什至在我的 init 文件中注释掉了设置,但仍然出现错误。关于如何处理这个问题有什么想法吗?
事实证明,毫不奇怪,问题不在我寻找的地方。除了我在原始问题中显示的包含 c-offsets-alist 值的设置包之外,还有一个我不记得添加的形式:
(setq c++-mode-hook
'(lambda ()
(innamespace 0)))
我想我是不小心把它放进去的 - 很可能是复制和粘贴的错误。让它成为一个警示故事 - 我应该在发布我的问题之前抓住这个问题。