处理右括号过多的问题时,首先跳转到文件开头,
然后按 C-u -1 C-M-u(带参数 -1 的 backward-up-list),
找到第一个括号不匹配的 defun 的结束位置。
接着,在该 defun 开头按 C-M-f(forward-sexp,see Expressions in The GNU Emacs Manual),
找到实际匹配的右括号位置。
此时光标会停在 defun 本应结束位置之前的某处,
在该位置附近很可能存在多余的右括号。
如果在该位置未发现问题,下一步是在 defun 开头按 C-M-q(indent-pp-sexp)。
某一段代码行可能会整体左移;
若出现此情况,缺失的左括号或多余的右括号大概率出现在这些行的起始位置附近。
(但不要想当然;请仔细阅读代码确认。)
找到问题后,用 C-_(undo)撤销 C-M-q 的缩进,
因为原来的缩进通常更符合你期望的括号结构。
当你认为已经修复问题后,再次使用 C-M-q。 如果原来的缩进确实符合你期望的括号嵌套结构, 并且你已经补全了对应的括号,那么 C-M-q 不会做任何修改。