每次我尝试创建或访问扩展名为".txt“的文件时,都会得到如下堆栈跟踪:
Debugger entered--Lisp error: (wrong-number-of-arguments quote 0)
quote()
set-auto-mode-0(quote nil)
set-auto-mode()
normal-mode(t)
after-find-file(nil t)
find-file-noselect-1(#<buffer file.txt> "~/path/to/file.txt" nil nil "~/path/to/file.txt" (24122033 2049))
find-file-noselect("/home/me/path/to/file.txt" nil nil)
ido-file-internal(raise-frame)
ido-find-file()
call-interactively(ido-find-file nil nil)然而,在基本模式下,缓冲区"file.txt“是打开的。无论我使用ido_find-file还是M-x find file,都会发生这种情况。
我尝试通过在init.el文件中添加以下行来修复此问题:
(add-to-list 'auto-mode-alist '("\\.txt$" . text-mode))
...and我已经将txt更改为[tT][xX][tT],为$切换了一个\\',并尝试了fundamental-mode而不是text-mode;但是这些更改的组合似乎都不能消除这个错误。
我在xubuntu linux上使用GNU Emacs24.3.1 (i686-pc-linux-gnu,GTK+版本3.4.2)。
我假设错误是从set-auto-mode()开始的,但我不能确定,我也不知道为什么那里的括号会是空的。有没有其他人遇到过这个问题,或者知道我做错了什么?
发布于 2013-11-03 00:00:41
我怀疑问题来自于文件/home/me/path/to/file.txt中错误的局部变量声明。您在该文件中是否有局部变量声明,以及它是否包含不应该存在的引号(')?
但我同意@phils给出的好建议,用来追踪这个问题。set-auto-mode可以通过几种不同的方法来尝试确定模式。您需要找出使用的是哪一个(除非我的猜测有帮助)。
https://stackoverflow.com/questions/19740020
复制相似问题