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

时间:2015-04-10 01:43:54

标签: sublimetext sublimetext3 sublime-text-plugin

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

我如何做到这一点?

2 个答案:

答案 0 :(得分:23)

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

在Windows上打开Command Palette Ctrl + Shift + P cmd +在Mac上 shift + P ,输入" AlignTab",按回车键,然后输入并输入:

:/r0clf1

支持0空格的@Hank道具选项,甚至没有意识到他不想要这个空间。

<强>解释

  • :找到冒号
  • /说好了现在这里有一些关于我想要你用冒号做什么的论据
  • r表示右对齐第一列
  • 0表示右列
  • 后的0个空格
  • c表示中间栏的中心(这只是冒号,所以它没有做任何事情)
  • l表示左对齐右列
  • f1表示只对第<
  • 行的第一场比赛执行此操作

答案 1 :(得分:7)

AlignTab docs或链接的示例有足够的信息来涵盖您的需求。

如果突出显示原始文本,然后是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

转换如下:

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文档中的Tablular示例稍微有点帮助,尽管它并不代表AlignTab的实际实现。