如何在Sublime Text 3中对齐文本?

32

我使用名为 AlignTab 的 Sublime Text 3 插件来将我的代码对齐,效果如下:

 Version : 1.4.1
 Author  : Ken Wheeler
 Website : http://kenwheeler.github.io
 Docs    : http://kenwheeler.github.io/slick
 Repo    : http://github.com/kenwheeler/slick
 Issues  : http://github.com/kenwheeler/slick/issues

现在,我希望我的文本能够像这样紧挨着冒号:

 Version: 1.4.1
  Author: Ken Wheeler
 Website: http://kenwheeler.github.io
    Docs: http://kenwheeler.github.io/slick
    Repo: http://github.com/kenwheeler/slick
  Issues: http://github.com/kenwheeler/slick/issues

我该如何实现这个目标?


8
我不明白你们这些人。这个问题和答案怎么会有主观性或垃圾邮件的特点? - t1ser
@t1. 我已经按照指南进行了编辑,但在获得3000点之前我无法发起重新开放投票。 - Rob Wise
2个回答

32
您可以使用 AlignTab 完成此操作,无需其他插件。只需要使用 在 GitHub 页面上描述的更高级的正则表达式功能 即可。
打开“命令面板”(Windows 上为 Ctrl+Shift+P,Mac 上为 cmd+shift+P),输入“AlignTab”,按 Enter 键,然后输入以下内容并按 Enter 键: :/r0clf1 感谢 @Hank 包括了 0 个空格选项,我甚至没有意识到他不想要空格。 说明:
  • : 表示查找冒号
  • / 表示接下来会有一些关于如何处理冒号的参数
  • r 表示右对齐第一列
  • 0 表示右列后面没有空格
  • c 表示居中显示中间列(它只是冒号,所以并不起作用)
  • l 表示左对齐右列
  • f1 表示仅对行中的第一个匹配项执行此操作

你会如何将这个保存在AlignTab的偏好设置中,以便我可以从右键菜单中直接访问它? - Ryan Grush
请注意,您必须首先通过使用“命令面板”和“安装包”进行安装。 - watsonic

9
AlignTab 文档 或链接的示例包含了足够覆盖所需内容的信息。
如果你选中原始文本,然后按下 Cmd + Shift + P (或者在 Windows 下是 Ctrl Shift P) 进入 AlignTab 实时预览模式,你可以输入正则表达式并使用特殊的 rlc 语法。
该语法如下:
\s+:/r0c1l

正则表达式为\s+(大于1个空格)到第一个冒号:,然后是r0(右对齐,0个空格),c1(带1个右边填充的中心标记),然后是l(左对齐剩余文本)。由于正则表达式匹配第一个冒号之前的前导空格(根据您的示例),因此不需要在表达式末尾添加“f1”。
如果您有没有预先格式化的新文本,例如:
Version: 1.4.1
Author: Ken Wheeler
Website: http://kenwheeler.github.io
Docs: http://kenwheeler.github.io/slick
Repo: http://github.com/kenwheeler/slick
Issues: http://github.com/kenwheeler/slick/issues

然后将其转换为以下所需格式,将会是:
:/r0c1lf1

Converted below:

Version: 1.4.1
 Author: Ken Wheeler
Website: http://kenwheeler.github.io
   Docs: http://kenwheeler.github.io/slick
   Repo: http://github.com/kenwheeler/slick
 Issues: http://github.com/kenwheeler/slick/issues

这个结果比你原来的问题要好,因为它没有前导空格。

P.S. 我发现 AlignTab 文档中的表格示例稍微更有帮助一些,尽管它并不代表 AlignTab 的实际实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接