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

Posted

技术标签:

【中文标题】在 Emacs 中,如何在一系列初始化语句中排列等号?【英文标题】:In Emacs, how to line up equals signs in a series of initialization statements? 【发布时间】:2010-10-29 07:05:31 【问题描述】:

我在哪里看到过这个,但现在找不到了。 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>();

【问题讨论】:

【参考方案1】:

这是对 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)

【讨论】:

这不是对原始问题的一个很好的答案,但是很有价值,很有价值,很有价值。 (我想我只是鲍尔默德。) 我花了一些时间才明白这是什么does...【参考方案2】:

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

【讨论】:

好的,我已将它绑定到 C-x |。我是怎么使用 emacs 这么久却不知道这个的?感谢您的帮助。 唯一的问题是它“制表”了输出,这可能不是你想要的。你知道有什么方法可以防止这种情况发生吗? harpo:我为您的问题添加了新答案。 此 URL 有助于将其变为 fn:***.com/questions/3633120/…【参考方案3】:

M-x align 应该可以解决问题。

【讨论】:

以上是关于在 Emacs 中,如何在一系列初始化语句中排列等号?的主要内容,如果未能解决你的问题,请参考以下文章

Emacs shell 脚本 - 如何将初始选项放入脚本中?

ubuntu12.04中用emacs进行shell编程怎么配置呢?

设置 Emacs 默认字体 par-buffer/mode

生产力系列(篇四):Emacs + HHKB

如何进行可编辑的 UNION 查询?

Stripe:如何在一系列价格中保留付款