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/l0c1l0
align 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.:
/r1c1l0
command! -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}` matches
or
: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/r1c1l0
isRunning : proc.getOrDefault( 'run' , false ) , name : proc.getOrDefault( 'name' , '') , runningStage : proc.getOrDefault( 'stage' , ['all'] ) , type : proc.type.split('^.*\\u00BB\\s*').last() ,
/^[^:]*\zs:/r1c1l0
isRunning : proc.getOrDefault( 'run' , false ) , name : proc.getOrDefault( 'name' , '') , runningStage : proc.getOrDefault( 'stage' , ['all'] ) , type : proc.type.split('^.*\\u00BB\\s*').last() ,
tabularize-3 /^[^:]*/r1c1l0
isRunning : 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?