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

kyo*_*kyo 24 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
Run Code Online (Sandbox Code Playgroud)

现在,我希望我的文本像这样留在冒号旁边:

 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
Run Code Online (Sandbox Code Playgroud)

我该如何做到这一点?

Rob*_*ise 24

您可以使用AlignTab执行此操作,无需使用其他插件.您只需要使用GitHub页面上描述的更高级的正则表达式功能.

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

:/r0clf1

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

说明:

  • :发现结肠
  • /说现在没事来这里的一些争论什么,我想你的结肠做
  • r方法右对齐的第一列
  • 0右列后手段0空格
  • c意味着中间列(这只是冒号,因此它没有做任何事情)
  • l手段左对齐右列
  • f1意味着只对线上的第一场比赛做到这一点


小智 7

AlignTab文档或链接的例子有足够的信息来覆盖你需要什么.

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

语法是:

\s+:/r0c1l
Run Code Online (Sandbox Code Playgroud)

正则表达式是\ 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
Run Code Online (Sandbox Code Playgroud)

然后转换为您想要的格式,将是:

:/r0c1lf1
Run Code Online (Sandbox Code Playgroud)

转换如下:

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
Run Code Online (Sandbox Code Playgroud)

这个结果实际上比原始问题文本更好,因为没有前导空格.

PS我发现AlignTab文档中的Tablular示例稍微有点帮助,虽然它并不代表AlignTab的真实实现.