在emacs中对齐或美化代码

时间:2011-06-02 16:10:58

标签: emacs alignment indentation prettify

我记得这在emacs中是可能的,但不知道如何。如果我有类似的东西:

'abc' => 1,  
'abcabc' =>2,  
'abcabcabc' => 3,  

如何将键,箭头和值对齐到这样的东西?

'abc'       => 1,  
'abcabc'    => 2,  
'abcabcabc' => 3,  

干杯

2 个答案:

答案 0 :(得分:35)

  • 选择区域。

  • 输入M-x align-regexp RET

  • 输入=并按Enter键。

答案 1 :(得分:21)

您也可以使用align命令代替align-regexp。不同之处在于align会根据缓冲区的主要模式自动选择要使用的正则表达式。因此,如果您尝试在c模式文件中对齐一组变量初始化和赋值,那么它将自动执行正确的操作,而无需考虑所需的正则表达式。可以方便。

例如,选择以下行:

int x = 3;
double y = 9.0;
unsigned int z = 6;
const char c = 'A';

然后输入M-x align RET。结果是:

int          x = 3;
double       y = 9.0;
unsigned int z = 6;
const char   c = 'A';
但是,我应该补充一点,这并不总是有效。如果没有为当前缓冲区的主模式定义正则表达式,则对align的调用将不执行任何操作。然后,您需要回到align-regexp。但这不是一个很大的不便。我实际上经常使用align-regexp。为方便起见,我已经定义了一个别名来为自己保存几个击键:

(defalias 'ar #'align-regexp)