usage
useful commands
command! -nargs=0 -bar -range=% Reverse
\ let save_mark_t = getpos("'t")
\<bar> <line2>kt
\<bar> exe "<line1>,<line2>g/^/m't"
\<bar> call setpos("'t", save_mark_t)
nnoremap <Leader>r :Reverse <bar> nohlsearch<CR>
xnoremap <Leader>r :Reverse <bar> nohlsearch<CR>
command! -nargs=0 DocTocUpdate execute 'silent !/usr/local/bin/doctoc --notitle --update-only --github --maxlevel 3 %' | execute 'redraw!'
command! -nargs=0 DocTocCreate execute 'silent !/usr/local/bin/doctoc --notitle --github --maxlevel 3 %' | execute 'redraw!'
command! -nargs=1 First execute 'Tabularize /^[^' . escape(<q-args>, '\^$.[?*~') . ']*\zs' . escape(<q-args>, '\^$.[?*~')
command! -nargs=1 -range First execute <line1> . ',' . <line2> . 'Tabularize /^[^' . escape(<q-args>, '\^$.[?*~') . ']*\zs' . escape(<q-args>, '\^$.[?*~')
command! -nargs=0 Iname execute 'echo expand("%:p")'[!TIP|label:references:]
align with first space :
/^\s*\S\+\zs/l0c1l0align the second
=to left :/^\(.\{-}\zs=\)\{2}/l1l0
l<N>
left-align (with N spaces padding)
r<N>
right-align (with N spaces padding)
c<N>
center-align (with N spaces padding)
including the
<sep>align to left
:Tabularize /<sep>or
:Tabularize /<sep>/l1
align to center
:Tabularize /<sep>/r1c1l0

tabularize
align with the N pattern
i.e.: the second match (
=)
refer to matches the N pattern

tabularize-5 [!NOTE] only for default left-alignemnt. Not support customized right/middle alignment. i.e.:
/r1c1l0command! -nargs=1 -range First exec <line1> . ',' . <line2> . 'Tabularize /^[^' . escape(<q-args>, '\^$.[?*~') . ']*\zs' . escape(<q-args>, '\^$.[?*~')
align with 2nd matches
:Tabularize /^\(.\{-}\zs=\)\{N}/ | `^` means start of the line
align with the 2nd matches or with
\v(very magic)reference:
:Tabularize /\v^(.{-}\zs\=){N}/<specifier>
for every N matches
: Tabularize /\(.\{-}\zs=\)\{N}/<specifier> | no `^` means every `{N}` matchesor
:Tabularize /\v(.{-}\zs\=){N}/<specifier>
[!NOTE|label:pre condition:]
align the first
:and last matches,as below:[ isRunning : proc.getOrDefault( 'run' , false ) , name : proc.getOrDefault( 'name' , '') , runningStage : proc.getOrDefault( 'stage' , ['all'] ) , type : proc.type.split('^.*\\u00BB\\s*').last() , ]
first
:reference: via
/^[^;]*\zs:/^[^;]*\zs:/r1c1l0/^[^;]*/r1c1l0
/^[^:]*\zs:isRunning : proc.getOrDefault( 'run' , false ) , name : proc.getOrDefault( 'name' , '') , runningStage : proc.getOrDefault( 'stage' , ['all'] ) , type : proc.type.split('^.*\\u00BB\\s*').last() ,
tabularize-1 
tabularize-2 /^[^:]*\zs/r1c1l0isRunning : proc.getOrDefault( 'run' , false ) , name : proc.getOrDefault( 'name' , '') , runningStage : proc.getOrDefault( 'stage' , ['all'] ) , type : proc.type.split('^.*\\u00BB\\s*').last() ,/^[^:]*\zs:/r1c1l0isRunning : proc.getOrDefault( 'run' , false ) , name : proc.getOrDefault( 'name' , '') , runningStage : proc.getOrDefault( 'stage' , ['all'] ) , type : proc.type.split('^.*\\u00BB\\s*').last() ,
tabularize-3 /^[^:]*/r1c1l0isRunning : proc.getOrDefault( 'run' , false ) , name : proc.getOrDefault( 'name' , '') , runningStage : proc.getOrDefault( 'stage' , ['all'] ) , type : proc.type.split('^.*\\u00BB\\s*').last() ,/^[^:]*:/r1c1l0:isRunning : proc.getOrDefault( 'run' , false ) , name : proc.getOrDefault( 'name' , '') , runningStage : proc.getOrDefault( 'stage' , ['all'] ) , type : proc.type.split('^.*\\u00BB\\s*').last() ,
last
,tips:
actually the pattern not matches with the final
,, but matches with)<.*> ,
sample code:
isRunning : proc.getOrDefault( 'run' , false ) , name : proc.getOrDefault( 'name' , '') , runningStage : proc.getOrDefault( 'stage' , ['all'] ) , type : proc.type.split('^.*\\u00BB\\s*').last() ,/)[^,]*\zs,isRunning : proc.getOrDefault( 'run' , false ) , name : proc.getOrDefault( 'name' , '') , runningStage : proc.getOrDefault( 'stage' , ['all'] ) , type : proc.type.split('^.*\\u00BB\\s*').last() ,or even better align
:1,3Tabularize /,or:'<,'>Tabularize /,isRunning : proc.getOrDefault( 'run' , false ) , name : proc.getOrDefault( 'name' , '') , runningStage : proc.getOrDefault( 'stage' , ['all'] ) , type : proc.type.split('^.*\\u00BB\\s*').last() ,:Tabularize /)[^,]*\zs,isRunning : proc.getOrDefault( 'run' , false ) , name : proc.getOrDefault( 'name' , '') , runningStage : proc.getOrDefault( 'stage' , ['all'] ) , type : proc.type.split('^.*\\u00BB\\s*').last() ,

tabularize-4
Last updated
Was this helpful?
