Emacs右对齐')'

时间:2014-04-10 15:49:48

标签: c++ emacs alignment

我想对产生以下效果的emacs执行对齐:

 m_str     ( "some value"     ),      
 m_frameCount  (0),                     
 m_filteredVolume(1.34 ),             
 m_filteredRawVolume (  -32.f, 0),     
 m_integratedValues( params->intVals),
 m_integratedScaledValues  (0),

m_str(                 "some value" ), 
m_frameCount(                     0 ), 
m_filteredVolume(              1.34 ), 
m_filteredRawVolume(       -32.f, 0 ), 
m_integratedValues( params->intVals ), 
m_integratedScaledValues(         0 ),

我一直在玩align-regexp,试图改变匹配模式和左/右对齐而没有任何成功。注意:我绝对希望第一个'('连接到第一个字符串。

1 个答案:

答案 0 :(得分:3)

尝试以下函数,给定一个区域,首先它消除多余的空白区域,然后它做正确的对齐。

(defun cpp-right-align-format ()
    (interactive)
    (let ((begin (region-beginning))
          (end (region-end)))
      (replace-regexp "\\s-*(\\s-*" "( " nil begin end)
      (replace-regexp "\\s-*)" " )" nil begin end)
      (align-regexp begin end "\\([^(]*\\))," -1)))