28

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

前:

int t=9;
Graphics g = new Graphics();
List<String> list = new List<String>();

后:

int          t    = 9;
Graphics     g    = new Graphics();
List<String> list = new List<String>();
4

3 回答 3

45

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

于 2009-05-27T14:35:12.423 回答
16

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

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

这是我为解决该问题所做的工作:

;; 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)
于 2011-11-15T00:14:35.713 回答
8

Mx align 应该可以解决问题。

于 2009-05-27T14:29:58.940 回答