From: Ciro Santilli 六四事件 法轮功 <ciro.santilli@gmail.com> Date: Mon, 4 May 2015 14:14:30 +0000 (+0200) Subject: Allow users to disable individual maps with hasmapto checks X-Git-Url: https://git.madduck.net/etc/vim.git/commitdiff_plain/21e96cbe9b8e6ea61b11709fff11e4d42a82ce16 Allow users to disable individual maps with hasmapto checks --- diff --git a/README.md b/README.md index 5ba457d..894037a 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,14 @@ The following work on normal and visual modes: - `]u`: go to parent header (Up). `<Plug>Markdown_MoveToParentHeader` +This plugging follows the recommended Vim plugin mapping interface, so if you want to change the map `]u` to `asdf`, add to your `.vimrc`: + + map asdf <Plug>Markdown_MoveToParentHeader + +To disable a map, use: + + map <Plug> <Plug>Markdown_MoveToParentHeader + ## Commands - `:HeaderDecrease`: diff --git a/ftplugin/mkd.vim b/ftplugin/mkd.vim index 6e04bd2..d67864a 100644 --- a/ftplugin/mkd.vim +++ b/ftplugin/mkd.vim @@ -510,6 +510,13 @@ function! s:OpenUrlUnderCursor() endif endfunction +function! s:MapNotHasmapto(lhs, rhs) + if !hasmapto('<Plug>' . a:rhs) + execute 'nmap <buffer>' . a:lhs . ' <Plug>' . a:rhs + execute 'vmap <buffer>' . a:lhs . ' <Plug>' . a:rhs + endif +endfunction + call <sid>MapNormVis('<Plug>Markdown_MoveToNextHeader', '<sid>MoveToNextHeader') call <sid>MapNormVis('<Plug>Markdown_MoveToPreviousHeader', '<sid>MoveToPreviousHeader') call <sid>MapNormVis('<Plug>Markdown_MoveToNextSiblingHeader', '<sid>MoveToNextSiblingHeader') @@ -519,20 +526,13 @@ call <sid>MapNormVis('<Plug>Markdown_MoveToCurHeader', '<sid>MoveToCurHeader') nnoremap <Plug>Markdown_OpenUrlUnderCursor :call <sid>OpenUrlUnderCursor()<cr> 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 - nmap <buffer> gx <Plug>Markdown_OpenUrlUnderCursor - - 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 + call <sid>MapNotHasmapto(']]', 'Markdown_MoveToNextHeader') + call <sid>MapNotHasmapto('[[', 'Markdown_MoveToPreviousHeader') + call <sid>MapNotHasmapto('][', 'Markdown_MoveToNextSiblingHeader') + call <sid>MapNotHasmapto('[]', 'Markdown_MoveToPreviousSiblingHeader') + call <sid>MapNotHasmapto(']u', 'Markdown_MoveToParentHeader') + call <sid>MapNotHasmapto(']c', 'Markdown_MoveToCurHeader') + call <sid>MapNotHasmapto('gx', 'Markdown_OpenUrlUnderCursor') endif command! -buffer -range=% HeaderDecrease call s:HeaderDecrease(<line1>, <line2>)