试试吧scan-sexps.它是背后的主力,forward-sexp并返回一个有意义的价值.
当然,如果parens不平衡,那么你会得到一个错误 - 所以你需要ignore-errors或condition-case.
forward-sexp如果它不能向前移动点,则发出错误信号.condition-case如果你愿意,你可以抓住这个.以下是测试它的示例命令:
(defun test-forward-sexp ()
"simple command testing (forward-sexp 1)"
(interactive)
(condition-case nil
(progn
(forward-sexp 1)
(message "succeeded"))
(error (message "failed"))))
Run Code Online (Sandbox Code Playgroud)
您可以在信息页面上阅读有关处理错误的更多信息.编写代码来处理错误.