【发布时间】:2011-09-07 05:04:48
【问题描述】:
我记得这在 emacs 中是可能的,但不知道如何。如果我有类似的东西:
'abc' => 1, 'abcabc' => 2, 'abcabcabc' => 3,如何将键、箭头和值与这样的东西对齐?
'abc' => 1, 'abcabc' => 2, 'abcabcabc' => 3,干杯
【问题讨论】:
标签: emacs alignment indentation prettify
我记得这在 emacs 中是可能的,但不知道如何。如果我有类似的东西:
'abc' => 1, 'abcabc' => 2, 'abcabcabc' => 3,如何将键、箭头和值与这样的东西对齐?
'abc' => 1, 'abcabc' => 2, 'abcabcabc' => 3,干杯
【问题讨论】:
标签: emacs alignment indentation prettify
您也可以使用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)
【讨论】:
align 规则的示例(在这种情况下,使 CoffeeScript 符号值对对齐)。
M-x align-regexp RET = RET)
选择区域。
输入M-x align-regexp RET
输入= 并回车。
【讨论】:
M-x 表示 Alt+x 或 Esc 后跟 x。 RET 表示 Enter。
align-regexp,但不足以保证它自己的专用组合键,所以我将(defalias 'ar 'align-regexp) 放在我的.emacs 文件中。
emacs -Q,它也与一个标签对齐。有没有办法将一个空格作为最低对齐方式?
int_x__________=_3;(使用_ 表示空格),没有制表符。)至于其余部分:我不知道“邪恶”,但在文件中有制表符是一个非常不便和导致各种问题(比如这个)。我真的不在乎 3 个字节,拥有一个在每个系统上看起来都一样的文件更有价值,并且不包含我看不到的奇怪内容。无论如何,如果您不想将 indent-tabs-mode 全局设置为 nil,您可以在 align-regexp 周围 defadvice 它。