我已经安装了 Tabular 插件,只要不涉及复杂的正则表达式,它对我来说就非常有用......
但我有这个清单:
one @abc @rstuvw &foo
three @defg &bar
four @mn @opq &kludge &hack
twelve @hijkl &baz &quux
我希望以这种方式对齐(首先在 @... 上,然后在 &... 上):
one @abc @rstuvw &foo
three @defg &bar
four @mn @opq &kludge &hack
twelve @hijkl &baz &quux
这意味着我同时遇到3个问题:
- 在第一次出现时对齐
- 2 个不同的分隔符(@ 和 &)
- 它们并不是真正的分隔符,而是单词开头的“特殊字符”
这远远超出了我对正则表达式和 Tabular.vim 的理解
我应该如何进行?
在第一次出现时对齐
帮助文件解释这个问题,可以使用这个命令:
:Tabularize /^[^@]*\zs@/l1l0
一点解释:
-
^
表示行的开头
-
[^@]*
匹配不是 a 的所有内容@
. The *
表示 0 次或多次,尽可能多
-
\zs
将正则表达式的开头放在这里(从这一点开始的所有内容都是匹配的)
-
@
上一句中的“这一点”意味着@
symbol
-
/l1l0
表示将第一个块向左对齐并添加 1 个空格 (l1
)并将第二个块向左对齐并添加 0 个空格(l0
)
对齐 2 个不同的分隔符
您需要用 2 个命令来完成此操作。为了让您的生活更轻松,您可以为模式命名并使用该名称:
:AddTabularPattern f_at /^[^@]*\zs@/l1l0
:AddTabularPattern f_and /^[^&]*\zs&/l1l0
现在你可以运行
:Tabularize f_at
:Tabularize f_and
映射命令
您甚至可以映射这些方法来生成简单的快捷方式。阅读更多相关内容here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)