endif
try
- silent vimgrep /\(^\S.*\(\n[=-]\+\)\@=\|^#\+\)/ %
+ silent lvimgrep /\(^\S.*\(\n[=-]\+\n\)\@=\|^#\+\)/ %
catch /E480/
echom "Toc: No headers."
return
endtry
if l:window_type ==# 'horizontal'
- copen
+ lopen
elseif l:window_type ==# 'vertical'
- vertical copen
+ vertical lopen
let &winwidth=(&columns/2)
elseif l:window_type ==# 'tab'
- tab copen
+ tab lopen
else
- copen
+ lopen
endif
set modifiable
%s/\v^([^|]*\|){2,2} #//
endfor
endfunction
+" Format table under cursor.
+" Depends on Tabularize.
+function! s:TableFormat()
+ let l:pos = getpos('.')
+ normal! {
+ " Search instead of `normal! j` because of the table at beginning of file edge case.
+ call search('|')
+ normal! j
+ " Remove everything that is not a pipe othewise well formated tables would grow
+ " because of addition of 2 spaces on the separator line by Tabularize /|.
+ s/[^|]//g
+ Tabularize /|
+ s/ /-/g
+ call setpos('.', l:pos)
+endfunction
+
call <sid>MapNormVis('<Plug>(Markdown_MoveToNextHeader)', '<sid>Markdown_MoveToNextHeader')
call <sid>MapNormVis('<Plug>(Markdown_MoveToPreviousHeader)', '<sid>Markdown_MoveToPreviousHeader')
call <sid>MapNormVis('<Plug>(Markdown_MoveToNextSiblingHeader)', '<sid>Markdown_MoveToNextSiblingHeader')
vmap <buffer> ]c <Plug>(Markdown_MoveToCurHeader)
endif
+command! -buffer -range=% HeaderDecrease call s:HeaderDecrease(<line1>, <line2>)
+command! -buffer -range=% HeaderIncrease call s:HeaderDecrease(<line1>, <line2>, 1)
+command! -buffer -range=% SetexToAtx call s:SetexToAtx(<line1>, <line2>)
+command! -buffer TableFormat call s:TableFormat()
command! -buffer Toc call s:Markdown_Toc()
command! -buffer Toch call s:Markdown_Toc('horizontal')
command! -buffer Tocv call s:Markdown_Toc('vertical')
command! -buffer Toct call s:Markdown_Toc('tab')
-command! -buffer -range=% SetexToAtx call s:SetexToAtx(<line1>, <line2>)
-command! -buffer -range=% HeaderDecrease call s:HeaderDecrease(<line1>, <line2>)
-command! -buffer -range=% HeaderIncrease call s:HeaderDecrease(<line1>, <line2>, 1)