在Emacs中,如何在一系列初始化语句中排列等号?

在Emacs中,如何在一系列初始化语句中排列等号?,emacs,formatting,code-formatting,Emacs,Formatting,Code Formatting,我在什么地方见过这个,但现在找不到。 emacs中是否有内置函数,或者是否有人拥有elisp,以便在cc模式下将一系列初始化语句中的所有等号对齐 之前: int t=9; Graphics g = new Graphics(); List<String> list = new List<String>(); int t=9; 图形g=新图形(); 列表=新列表(); 之后: int t = 9; Graphics g = new

我在什么地方见过这个,但现在找不到。 emacs中是否有内置函数,或者是否有人拥有elisp,以便在cc模式下将一系列初始化语句中的所有等号对齐

之前:

int t=9;
Graphics g = new Graphics();
List<String> list = new List<String>();
int t=9;
图形g=新图形();
列表=新列表();
之后:

int          t    = 9;
Graphics     g    = new Graphics();
List<String> list = new List<String>();
int t=9;
图形g=新图形();
列表=新列表();

M-x align应该可以做到这一点。

使用
M-x align regexp
(这里,
M-x align regexp RET=RET
)。您还可以将“对齐规则”添加到变量
align rules list
,以便将来
M-x align
将执行此操作。有关详细信息,请参阅文档(
C-h f align
)。

这是对harpo对ShreevatsaR回答的评论的回应:


唯一的问题是它“tabilize”了输出,这可能不是您想要的。你知道有什么办法可以防止这种情况吗

以下是我为解决该问题所做的:

;; Align with spaces only
(defadvice align-regexp (around align-regexp-with-spaces)
  "Never use tabs for alignment."
  (let ((indent-tabs-mode nil))
    ad-do-it))
(ad-activate 'align-regexp)

好的,我已经把这个绑定到C-x |。我是如何使用emacs这么长时间却不知道这一点的?谢谢你的帮助。唯一的问题是它“tabilize”了输出,这可能不是你想要的。哈波:我为你的问题添加了一个新的答案。这个URL帮助你把这个问题变成了一个fn:这不是一个很好的答案,但是很有价值,很有价值,很有价值。(我想我只是在胡思乱想。)我花了一些时间才明白这是什么。。。