" For each level, contains the regexp that matches at that level only.
let s:levelRegexpDict = {
- \ 1: '\v^(#[^#]|.+\n\=+$)',
- \ 2: '\v^(##[^#]|.+\n-+$)',
- \ 3: '\v^###[^#]',
- \ 4: '\v^####[^#]',
- \ 5: '\v^#####[^#]',
- \ 6: '\v^######[^#]'
+ \ 1: '\v^(#[^#]@=|.+\n\=+$)',
+ \ 2: '\v^(##[^#]@=|.+\n-+$)',
+ \ 3: '\v^###[^#]@=',
+ \ 4: '\v^####[^#]@=',
+ \ 5: '\v^#####[^#]@=',
+ \ 6: '\v^######[^#]@='
\ }
" Maches any header level of any type.
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} #//
for i in range(1, line('$'))
- " this is the quickfix data for the current item
- let d = getqflist()[i-1]
+ " this is the location-list data for the current item
+ let d = getloclist(0)[i-1]
" atx headers
if match(d.text, "^#") > -1
let l:level = len(matchstr(d.text, '#*', 'g'))-1
endfor
let l:numSubstitutions = s:SetexToAtx(a:line1, a:line2)
for l:level in range(replaceLevels[0], replaceLevels[1], -l:levelDelta)
- execute 'silent! ' . a:line1 . ',' . (a:line2 - l:numSubstitutions) . 'substitute/' . s:levelRegexpDict[l:level] . '/' . repeat('#', l:level + l:levelDelta) . '\1/g'
+ execute 'silent! ' . a:line1 . ',' . (a:line2 - l:numSubstitutions) . 'substitute/' . s:levelRegexpDict[l:level] . '/' . repeat('#', l:level + l:levelDelta) . '/g'
endfor
endfunction
call <sid>MapNormVis('<Plug>(Markdown_MoveToCurHeader)', '<sid>Markdown_MoveToCurHeader')
if !get(g:, 'vim_markdown_no_default_key_mappings', 0)
- nmap <buffer> ]] <Plug>(Markdown_MoveToNextHeader)
- nmap <buffer> [[ <Plug>(Markdown_MoveToPreviousHeader)
- nmap <buffer> ][ <Plug>(Markdown_MoveToNextSiblingHeader)
- nmap <buffer> [] <Plug>(Markdown_MoveToPreviousSiblingHeader)
- nmap <buffer> ]u <Plug>(Markdown_MoveToParentHeader)
- nmap <buffer> ]c <Plug>(Markdown_MoveToCurHeader)
+ nnoremap <buffer> ]] <Plug>(Markdown_MoveToNextHeader)
+ nnoremap <buffer> [[ <Plug>(Markdown_MoveToPreviousHeader)
+ nnoremap <buffer> ][ <Plug>(Markdown_MoveToNextSiblingHeader)
+ nnoremap <buffer> [] <Plug>(Markdown_MoveToPreviousSiblingHeader)
+ nnoremap <buffer> ]u <Plug>(Markdown_MoveToParentHeader)
+ nnoremap <buffer> ]c <Plug>(Markdown_MoveToCurHeader)
- vmap <buffer> ]] <Plug>(Markdown_MoveToNextHeader)
- vmap <buffer> [[ <Plug>(Markdown_MoveToPreviousHeader)
- vmap <buffer> ][ <Plug>(Markdown_MoveToNextSiblingHeader)
- vmap <buffer> [] <Plug>(Markdown_MoveToPreviousSiblingHeader)
- vmap <buffer> ]u <Plug>(Markdown_MoveToParentHeader)
- vmap <buffer> ]c <Plug>(Markdown_MoveToCurHeader)
+ vnoremap <buffer> ]] <Plug>(Markdown_MoveToNextHeader)
+ vnoremap <buffer> [[ <Plug>(Markdown_MoveToPreviousHeader)
+ vnoremap <buffer> ][ <Plug>(Markdown_MoveToNextSiblingHeader)
+ vnoremap <buffer> [] <Plug>(Markdown_MoveToPreviousSiblingHeader)
+ vnoremap <buffer> ]u <Plug>(Markdown_MoveToParentHeader)
+ vnoremap <buffer> ]c <Plug>(Markdown_MoveToCurHeader)
endif
command! -buffer -range=% HeaderDecrease call s:HeaderDecrease(<line1>, <line2>)