7

使用我的 .emacs 初始化文件时,我有时会犯错误。当我执行 eval-buffer 时,我收到消息“解析期间文件结束”。

如何让 Emacs 告诉我错误的确切位置?

4

2 回答 2

20

首先是检查括号和字符串引号的平衡。

对于 Emacs Lisp 在 GNU Emacs 中使用M-x check-parens.

其他类似 Emacs 的编辑器也有类似的命令。例如在 LispWorks 中可以使用M-x Find Unbalanced Parentheses.

于 2013-02-25T19:51:25.037 回答
4

这些错误很难真正定位。

最好尽量避免括号不匹配。有几种内置和第 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 获得。

于 2013-02-26T17:06:24.397 回答