使用我的 .emacs 初始化文件时,我有时会犯错误。当我执行 eval-buffer 时,我收到消息“解析期间文件结束”。
如何让 Emacs 告诉我错误的确切位置?
首先是检查括号和字符串引号的平衡。
对于 Emacs Lisp 在 GNU Emacs 中使用M-x check-parens
.
其他类似 Emacs 的编辑器也有类似的命令。例如在 LispWorks 中可以使用M-x Find Unbalanced Parentheses
.
这些错误很难真正定位。
最好尽量避免括号不匹配。有几种内置和第 3 方次要模式可以帮助您:
electric-pair-mode
:自动插入匹配的右括号(内置)show-paren-mode
:当点在括号上时,突出显示匹配的(内置)rainbow-delimiters-mode
:在不同的面孔中突出显示每个级别的括号paredit-mode
: 始终保持括号平衡。通常,将重点放在 Sexps 上而不是字符和单词上。我建议启用所有这些。因此,消除不匹配括号的合理配置是:
(add-hook 'emacs-lisp-mode-hook 'paredit-mode)
(add-hook 'emacs-lisp-mode-hook 'rainbow-delimiters-mode)
(show-paren-mode 1)
(electric-pair-mode 1)
Paredit 和 Rainbow Delimiters 可从 MELPA 获得。