如何将参数与 emacs 中的函数对齐?

Posted

技术标签:

【中文标题】如何将参数与 emacs 中的函数对齐?【英文标题】:how to align arguments to functions in emacs? 【发布时间】:2010-11-01 12:41:19 【问题描述】:

如果我有以下情况,请说:

func(arg1, arg2, arg3...)
func(longargarg1, longerarg2, arg3,...)
...

如何对齐参数以使其类似于以下内容?

func(arg1       , arg2      , arg3...)
func(longargarg1, longerarg2, arg3,...)
...

[我可以使用 M-x align-regex 来对齐第一个参数,但我无法使用合适的正则表达式来对齐其余参数。如果答案也考虑到某些参数是带有逗号的字符串的情况,那么奖励点。]

【问题讨论】:

【参考方案1】:

选择区域,然后:

C-u M-x align-regexp RET ,\(\s-*\) RET RET RET y

正则表达式表示将逗号与它们后面的空格对齐。 paren group to modify 的默认值 1 表示在\(\s-*\) 所在的位置插入空格,spaces to adjust 的默认值 1 表示在最长扩展后有一个空格,并且您希望它在整个行中重复。

【讨论】:

酷!我什至不知道还有更复杂的 align-regexp 版本。自我注意:阅读文档...但是,如果逗号在双引号对内,是否有更好的正则表达式版本忽略逗号? (emacs 似乎没有前瞻/后置类型的正则表达式) 您可以编写自己的对齐例程,该例程使用语法表来确定正则表达式中的“计数”逗号。不过,我不确定如何“轻松”地做到这一点。

以上是关于如何将参数与 emacs 中的函数对齐?的主要内容,如果未能解决你的问题,请参考以下文章

如何以 clang 格式对齐函数参数名称?

渲染函数的反应参数

Go中的地址对齐

在 Emacs 中,如何在一系列初始化语句中排列等号?

如何自动对齐不同代码段中的注释?

使用粘贴时如何跳转到emacs中的函数定义?