19.3.2 右括号过多

处理右括号过多的问题时,首先跳转到文件开头, 然后按 C-u -1 C-M-u(带参数 -1 的 backward-up-list), 找到第一个括号不匹配的 defun 的结束位置。

接着,在该 defun 开头按 C-M-fforward-sexp,see Expressions in The GNU Emacs Manual), 找到实际匹配的右括号位置。 此时光标会停在 defun 本应结束位置之前的某处, 在该位置附近很可能存在多余的右括号。

如果在该位置未发现问题,下一步是在 defun 开头按 C-M-qindent-pp-sexp)。 某一段代码行可能会整体左移; 若出现此情况,缺失的左括号或多余的右括号大概率出现在这些行的起始位置附近。 (但不要想当然;请仔细阅读代码确认。) 找到问题后,用 C-_undo)撤销 C-M-q 的缩进, 因为原来的缩进通常更符合你期望的括号结构。

当你认为已经修复问题后,再次使用 C-M-q。 如果原来的缩进确实符合你期望的括号嵌套结构, 并且你已经补全了对应的括号,那么 C-M-q 不会做任何修改。

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© 2025 Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike