vim-md/ftplugin/markdown.vim

31 lines
1.4 KiB
VimL
Raw Normal View History

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" File: ftplugin/markdown.vim
" Maintainer: Andrew Nechaev <i@geekfrom.ru>
" Version: 0.0.1
" Modified: 2022-05-13 18:30+0400
" License: MIT
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nnoremap <buffer> <silent> <Leader>t :call winrestview(<SID>toggle('^\s*[-+*]\s*[\[(]\zs.\ze[\])]', {' ': 'x', 'x': '-', '-': ' '}))<cr>
vnoremap <buffer> <silent> <Leader>t :call winrestview(<SID>toggle('^\s*[-+*]\s*[\[(]\zs.\ze[\])]', {' ': 'x', 'x': '-', '-': ' '}))<cr>
nnoremap <buffer> <silent> <Leader>r :call winrestview(<SID>toggleState('(', '( ) '))<cr>
vnoremap <buffer> <silent> <Leader>r :call winrestview(<SID>toggleState('(', '( ) '))<cr>
nnoremap <buffer> <silent> <Leader>c :call winrestview(<SID>toggleState('[', '[ ] '))<cr>
vnoremap <buffer> <silent> <Leader>c :call winrestview(<SID>toggleState('[', '[ ] '))<cr>
set tabstop=2 softtabstop=2 shiftwidth=2 expandtab
function s:toggle(pattern, dict, ...)
let view = winsaveview()
execute 'keeppatterns s/' . a:pattern . '/\=get(a:dict, submatch(0), a:0 ? a:1 : " ")/e'
return view
endfunction
function s:toggleState(search, replacement)
let view = winsaveview()
execute 'keeppatterns s/^\s*\(-\s*\|+\s*\|*\s\)\?\zs\(\[.\]\|(.)\)\?\s*\ze/\=match(submatch(0), a:search) != -1 ? "" : a:replacement/e'
return view
endfunction