Tabular.vim : how to align on the first occurrence of 2 different delimiters placed at the beginning of Words?

后端 未结 1 1681
天命终不由人
天命终不由人 2020-12-30 15:33

I have installed the Tabular plugin, which works very well for me, as long as there are no complicated regexes involved…

But I have this list :

one          


        
相关标签:
1条回答
  • 2020-12-30 16:21

    Align on the first occurrence

    The help file explains this problem, you can use this command:

    :Tabularize /^[^@]*\zs@/l1l0
    

    A little explaination:

    • ^ means the begin of the line
    • [^@]* match everything that isn't a @. The * means 0 or more times, as much as you can
    • \zs put the start of the regex here (everything from this point is matched)
    • @ the 'this point' in the previous sentence means the @ symbol
    • /l1l0 means align the 1st block to the left and add 1 space (l1) and align the 2nd block to the left and add 0 spaces (l0)

    Align 2 different delimiters

    You need to do this in 2 commands. To make your life easier you can name the pattern and use that name:

    :AddTabularPattern f_at /^[^@]*\zs@/l1l0
    :AddTabularPattern f_and /^[^&]*\zs&/l1l0
    

    Now you can run

    :Tabularize f_at
    :Tabularize f_and
    

    Map the commands

    You can even map these methods to generate easy shortcuts. Read more about this here

    0 讨论(0)
提交回复
热议问题