有没有一个 Emacs 命令可以在 C 或 C++ 文件中向前移动复合语句?
如果我有以下代码:
^ if (foo)
{
doSomething();
}$
光标所在位置为插入符(^
),我想执行M-x forward-compound-statement RET
命令并将光标移动到$符号。
forward-sexp
看起来应该是正确的命令,但它只能跨越一个单词,将光标放在if后面。c-end-of-statement
也不对,因为它只会到第一个闭合括号。
编辑:在if-then-else-if-else块的情况下,理想情况下我希望它能够快速获得所有的else块。
我还希望将来能在编写的defuns中使用它,因此按键次数不太重要,而是需要一个命令来完成它,而不是重复多个命令直到它到达正确的位置。
forward-list
е’Њbackward-list
更接近您所寻找的吗? - Adam Rosenfield{
时,forward-sexp
将从{
跳转到}
。 - ldav1sfoo
之后,但仍然没有达到我想要的位置。 - Troy Danielsforward-sexp
应该是正确的命令。但是 c-mode 没有尝试解释如何跳过这样的语句。从$
返回到^
更加棘手,因为$
位于if
表达式和{...}
块的末尾,所以对backward-sexp
的请求是模糊的。 - Stefan