我是一名 C++ 程序员,使用的设置包括当然cc-mode
还有CEDET
我们心爱的 emacs (v24.2)。
我缺少的一个功能是一个通过参数列表快速移动点的函数。考虑这个例子:
void takesManyArgs( int a1, int a2, int a3, std::pair<int,int> a4, int a5 ){
// does something nifty!
}
// [...]
takesManyArgs( b1, b2, b3, make_pair( b4, b5 ), b6 );
其中点就在第一个之前int
。现在我想要一种简单的方法来快速浏览参数列表,即一个forward-argument
(backward-argument
以及)在第一个非空白字符之前移动到逗号(参数分隔符)之前的函数。
我已经编写了一个小函数来完成它,但它并不是我想要的工作方式:
(defun arg-forward ()
"Move point forward in the file until we hit an argument separator, i.e. comma, colon or semicolon."
(interactive)
(progn
(re-search-forward "[,]")))
原则上,这个函数只是跳转到下一个逗号。这不是我想要的行为。
我想要一个功能:
- 编辑:跳转到下一个参数分隔符(即 C++ 的逗号)并将点放在该参数分隔符之后
- 检查逗号后是否有空格;如果有一个,点将移动到第一个非空白字符(即,而不是
,| int
它看起来像标记指向 的, |int
位置)|
- 在参数列表的末尾停止并打印一条消息(例如“在参数列表的末尾”)
- 停留在它的“范围”内,即它会从标记指向
|int b3
的|make_pair( int b4, int b5 )
地方|int a6
到达|
elisp
感谢您“黑客”的任何帮助!
编辑:添加了一些说明。
Edit2:修复了该示例“代码”