|
48 | 48 | " For each level, contains the regexp that matches at that level only.
|
49 | 49 | "
|
50 | 50 | let s:levelRegexpDict = {
|
51 |
| - \ 1: '\v^(#[^#]@=\s+|.+\n\=+$)', |
52 |
| - \ 2: '\v^(##[^#]@=\s+|.+\n-+$)', |
53 |
| - \ 3: '\v^###[^#]@=\s+', |
54 |
| - \ 4: '\v^####[^#]@=\s+', |
55 |
| - \ 5: '\v^#####[^#]@=\s+', |
56 |
| - \ 6: '\v^######[^#]@=\s+' |
| 51 | + \ 1: '\v^(#\_s@=|.+\n\=+$)', |
| 52 | + \ 2: '\v^(##\_s@=|.+\n-+$)', |
| 53 | + \ 3: '\v^###\_s@=', |
| 54 | + \ 4: '\v^####\_s@=', |
| 55 | + \ 5: '\v^#####\_s@=', |
| 56 | + \ 6: '\v^######\_s@=' |
57 | 57 | \ }
|
58 | 58 |
|
59 | 59 | " Maches any header level of any type.
|
60 | 60 | "
|
61 | 61 | " This could be deduced from `s:levelRegexpDict`, but it is more
|
62 | 62 | " efficient to have a single regexp for this.
|
63 | 63 | "
|
64 |
| -let s:headersRegexp = '\v^(#{1,6}\s+|.+\n(\=+|-+)$)' |
| 64 | +let s:headersRegexp = '\v^(#{1,6}\_s|.+\n(\=+|-+)$)' |
65 | 65 |
|
66 | 66 | " Returns the line number of the first header before `line`, called the
|
67 | 67 | " current header.
|
@@ -526,7 +526,7 @@ function! s:HeaderDecrease(line1, line2, ...)
|
526 | 526 | let l:numSubstitutions = s:SetexToAtx(a:line1, a:line2)
|
527 | 527 | let l:flags = (&gdefault ? '' : 'g')
|
528 | 528 | for l:level in range(replaceLevels[0], replaceLevels[1], -l:levelDelta)
|
529 |
| - execute 'silent! ' . a:line1 . ',' . (a:line2 - l:numSubstitutions) . 'substitute/' . s:levelRegexpDict[l:level] . '/' . repeat('#', l:level + l:levelDelta) . ' /' . l:flags |
| 529 | + execute 'silent! ' . a:line1 . ',' . (a:line2 - l:numSubstitutions) . 'substitute/' . s:levelRegexpDict[l:level] . '/' . repeat('#', l:level + l:levelDelta) . '/' . l:flags |
530 | 530 | endfor
|
531 | 531 | endfunction
|
532 | 532 |
|
|
0 commit comments