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

How to align texts in Sublime Text 3?

我使用名为 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

我该如何完成?

您可以使用 AlignTab 执行此操作,无需其他插件。你只需要使用 the more advanced regex functionality as described on the GitHub page.

调出 Command Palette (Ctrl+Shift+P Windows 或 cmd+shift+P on Mac), 输入在 "AlignTab" 中,按回车键,然后输入并按回车键:

:/r0clf1

支持@Hank 包括 0 spaces 选项,甚至没有意识到他不想要 space.

解释:

  • : 找到冒号
  • / 说好吧现在来谈谈我希望你用冒号做什么
  • r 表示右对齐第一列
  • 0表示右列后0space秒
  • c 表示居中中间列(这只是冒号,所以它什么都不做)
  • l表示右列左对齐
  • f1 意味着只对行中的第一个匹配项执行此操作

AlignTab docs 或链接示例提供了足够的信息来满足您的需求。

如果您突出显示原始文本,然后 Cmd + Shift + P(或 windows 上的 Ctrl Shift P)并进入 AlignTab 实时预览模式,您可以输入正则表达式并使用特殊的 rlc 语法。

语法是:

\s+:/r0c1l

正则表达式是 \s+(大于 1 spaces)到第一个 :,然后是 r0(右对齐,0 spaces),c1(中心标记以 1 填充到右),然后是 l(左对齐剩余的文本)。表达式末尾不需要 'f1',因为正则表达式与第一个冒号之前的前导 space 匹配(根据您的示例)。

如果您新写的文本没有预先格式化,例如:

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

转换如下:

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

这个结果实际上比你原来的问题文本更好,因为没有前导 space。

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