X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/2b4603e9eaac622ee963c45b3a838e36bd7b7b1f..662822d81ab5320985be59e8368e60ad55d42137:/ftplugin/mkd.vim diff --git a/ftplugin/mkd.vim b/ftplugin/mkd.vim index 36d0b08..916e47f 100644 --- a/ftplugin/mkd.vim +++ b/ftplugin/mkd.vim @@ -47,12 +47,12 @@ " 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. @@ -302,27 +302,26 @@ function! s:Markdown_Toc(...) 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 @@ -392,7 +391,7 @@ function! s:HeaderDecrease(line1, line2, ...) 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 @@ -422,19 +421,19 @@ call MapNormVis('(Markdown_MoveToParentHeader)', 'Markdown_MoveT call MapNormVis('(Markdown_MoveToCurHeader)', 'Markdown_MoveToCurHeader') if !get(g:, 'vim_markdown_no_default_key_mappings', 0) - nmap ]] (Markdown_MoveToNextHeader) - nmap [[ (Markdown_MoveToPreviousHeader) - nmap ][ (Markdown_MoveToNextSiblingHeader) - nmap [] (Markdown_MoveToPreviousSiblingHeader) - nmap ]u (Markdown_MoveToParentHeader) - nmap ]c (Markdown_MoveToCurHeader) + nnoremap ]] (Markdown_MoveToNextHeader) + nnoremap [[ (Markdown_MoveToPreviousHeader) + nnoremap ][ (Markdown_MoveToNextSiblingHeader) + nnoremap [] (Markdown_MoveToPreviousSiblingHeader) + nnoremap ]u (Markdown_MoveToParentHeader) + nnoremap ]c (Markdown_MoveToCurHeader) - vmap ]] (Markdown_MoveToNextHeader) - vmap [[ (Markdown_MoveToPreviousHeader) - vmap ][ (Markdown_MoveToNextSiblingHeader) - vmap [] (Markdown_MoveToPreviousSiblingHeader) - vmap ]u (Markdown_MoveToParentHeader) - vmap ]c (Markdown_MoveToCurHeader) + vnoremap ]] (Markdown_MoveToNextHeader) + vnoremap [[ (Markdown_MoveToPreviousHeader) + vnoremap ][ (Markdown_MoveToNextSiblingHeader) + vnoremap [] (Markdown_MoveToPreviousSiblingHeader) + vnoremap ]u (Markdown_MoveToParentHeader) + vnoremap ]c (Markdown_MoveToCurHeader) endif command! -buffer -range=% HeaderDecrease call s:HeaderDecrease(, )