2009-06-09 55 views
8

說,如果我有以下幾點:如何將參數與emacs中的函數對齊?

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

如何對齊參數,以便它像下面?

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

[I可以用M-X對齊正則表達式以對準的第一個參數,但我不能與合適的正則表達式編造對齊的參數的其餘部分。獎勵積分如果答案也採取案件的關心當一些參數是與他們逗號字符串]

+1

積分!甜! – Cheeso 2009-06-09 15:33:58

回答

16

選擇區域,然後:

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

的正則表達式表示可對齊以空格逗號。要修改的paren組的缺省值爲1意味着插入空格,其中\(\s-*\)是,對於要調整的空格,缺省值爲1意味着在最長擴展後有一個空格,並且您希望在整個行中重複該空格。

+0

酷!我甚至不知道有更復雜的align-regexp版本。注意自我:閱讀文檔...但是,如果正則表達式在雙引號內,忽略逗號,是否有更好的正則表達式版本? (emacs似乎沒有前瞻/後面類型的正則表達式) – polyglot 2009-06-09 20:31:23