在emacs中对齐或美化代码

719*_*016 18 emacs prettify indentation alignment

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

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

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

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

干杯

Shr*_*saR 35

  • 选择地区.

  • 类型 M-x align-regexp RET

  • 键入=并回车.

  • 这里`Mx`表示Alt + x或Esc后跟x.`RET`表示输入. (2认同)
  • 非常好.每天你都会学到关于Emacs的东西...... :) (2认同)
  • 我经常使用`align-regexp`,但通常不足以保证它自己的专用键组合,所以我在`.emacs`文件中放了`(defalias'ar'align-regexp)`. (2认同)

A. *_*evy 21

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

例如,选择以下行:

int x = 3;
double y = 9.0;
unsigned int z = 6;
const char c = 'A';
Run Code Online (Sandbox Code Playgroud)

并输入M-x align RET.结果是:

int          x = 3;
double       y = 9.0;
unsigned int z = 6;
const char   c = 'A';
Run Code Online (Sandbox Code Playgroud)

不过,我应该补充一点,这并不总是有效.如果没有为当前缓冲区的主模式定义正则表达式,则调用align将不执行任何操作.然后,你需要重新开始align-regexp.但这不是一个很大的不便.我实际上align-regexp经常使用.为方便起见,我已经定义了一个别名来为自己保存几个击键:

(defalias 'ar #'align-regexp)
Run Code Online (Sandbox Code Playgroud)