tablar.vim:如何在单词开头的两个不同分隔符首次出现时对齐?
我已经安装了表格插件,这对我来说非常好,只要不涉及复杂的正则表达式 但我有以下清单:tablar.vim:如何在单词开头的两个不同分隔符首次出现时对齐?,vim,tabular,Vim,Tabular,我已经安装了表格插件,这对我来说非常好,只要不涉及复杂的正则表达式 但我有以下清单: one @abc @rstuvw &foo three @defg &bar four @mn @opq &kludge &hack twelve @hijkl &baz &quux 我希望这样对齐它(在@…首先,然后在&…): 这意味着我同时有3个问题: 在第一个引用上对齐 由两个不同的分隔符(@和&)组成 它们不是真正的分隔符,而是单词开头的“特
one @abc @rstuvw &foo
three @defg &bar
four @mn @opq &kludge &hack
twelve @hijkl &baz &quux
我希望这样对齐它(在@…首先,然后在&…):
这意味着我同时有3个问题:
- 在第一个引用上对齐
- 由两个不同的分隔符(@和&)组成
- 它们不是真正的分隔符,而是单词开头的“特殊字符”
:Tabularize /^[^@]*\zs@/l1l0
一点解释:
表示行的开头^
匹配所有非[^@]*
的内容。@
表示尽可能多地执行0次或更多次*
将正则表达式的开头放在这里(从这一点开始的所有内容都是匹配的)\zs
上一句中的“此点”表示@
符号@
表示将第一个块向左对齐并添加1个空格(/l1l0
),将第二个块向左对齐并添加0个空格(l1
)l0
:AddTabularPattern f_at /^[^@]*\zs@/l1l0
:AddTabularPattern f_and /^[^&]*\zs&/l1l0
现在你可以跑了
:Tabularize f_at
:Tabularize f_and
映射命令
您甚至可以映射这些方法以生成简单的快捷方式。了解更多有关此功能的信息它很有效!非常感谢你。[注意:我只是注意到,如果一个模式的一个实例丢失(例如,如果&bar在三个@defg之后丢失),那么整个模式将不对齐]。再次感谢。只是为了表明它可以在一个命令中完成:
:制表/@[^&]*\\\\\\\&.*/l1l0
:Tabularize f_at
:Tabularize f_and