mirror of
https://github.com/Raimondi/delimitMate.git
synced 2026-05-19 23:10:03 +08:00
Do nothing if blockwise visual mode is active and autocomplete is enabled.
This commit is contained in:
+20
-17
@@ -152,8 +152,15 @@ function! s:ResetMappings()
|
|||||||
endfor
|
endfor
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:MapMsg(msg)
|
||||||
|
redraw
|
||||||
|
echomsg a:msg
|
||||||
|
return ""
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Mappings:{{{1
|
" Mappings:{{{1
|
||||||
|
|
||||||
|
let s:VMapMsg = "delimitMate doesn't work on blockwise visual mode when autocomplete is enabled"
|
||||||
call s:ResetMappings()
|
call s:ResetMappings()
|
||||||
if s:autocomplete == 0
|
if s:autocomplete == 0
|
||||||
" Don't auto-complete:{{{2
|
" Don't auto-complete:{{{2
|
||||||
@@ -216,32 +223,27 @@ else
|
|||||||
" Wrap the selection with matching pairs:
|
" Wrap the selection with matching pairs:
|
||||||
let s:i = 0
|
let s:i = 0
|
||||||
while s:i < len(s:paired_delims)
|
while s:i < len(s:paired_delims)
|
||||||
" But only insert opening delimiter if blocking visual is active:
|
" But do nothing if blockwise visual mode is active:
|
||||||
" vmap <expr> q( visualmode() == "<C-V>" ? "I(\<Esc>" : "s()\<C-R>\"\<Esc>"
|
" vmap <expr> q( visualmode() == "<C-V>" ? <SID>MapMsg("Message") : "s(\<C-R>\"\<Esc>"
|
||||||
exec 'vmap <expr> ' . s:leader . s:left_delims[s:i] . ' visualmode() == "<C-V>" ? "I' . s:left_delims[s:i] . '\<Esc>" : "s' . s:left_delims[s:i] . s:right_delims[s:i] . '\<C-R>\"\<Esc>"'
|
exec 'vmap <expr> ' . s:leader . s:left_delims[s:i] . ' visualmode() == "<C-V>" ? <SID>MapMsg("' . s:VMapMsg . '") : "s' . s:left_delims[s:i] . '\<C-R>\"\<Esc>"'
|
||||||
|
|
||||||
" But only insert closing delimiter if blocking visual is active:
|
" But do nothing if blockwise visual mode is active:
|
||||||
"vmap <expr> q) visualmode() == "<C-V>" ? "A)\<Esc>" : "s"\<C-R>\""\<Esc>"
|
" vmap <expr> q) visualmode() == "<C-V>" ? <SID>MapMsg("Message") : "s"\<C-R>\""\<Esc>"
|
||||||
exec 'vmap <expr> ' . s:leader . s:right_delims[s:i] . ' visualmode() == "<C-V>" ? "A' . s:left_delims[s:i] . '\<Esc>" : "s' . s:left_delims[s:i] . s:right_delims[s:i] . '\<C-R>\"\<Esc>"'
|
exec 'vmap <expr> ' . s:leader . s:right_delims[s:i] . ' visualmode() == "<C-V>" ? <SID>MapMsg("' . s:VMapMsg . '") : "s' . s:left_delims[s:i] . '\<C-R>\"\<Esc>"'
|
||||||
let s:i = s:i + 1
|
let s:i = s:i + 1
|
||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
" Wrap the selection with matching quotes, but only insert the opening
|
" Wrap the selection with matching quotes, but do nothing if blockwise visual
|
||||||
" quote if blocking visual is active:
|
" mode is active:
|
||||||
for quote in s:quote_delims
|
for quote in s:quote_delims
|
||||||
if quote == '"'
|
if quote == '"'
|
||||||
" Ugly fix for double quotes:
|
" Ugly fix for double quotes:
|
||||||
" vmap <expr> q" visualmode() == "<C-V>" ? 'I\"<Left><BS><Right><Esc>' : "s\"\<C-R>\"\<Esc>"
|
" vmap <expr> q" visualmode() == "<C-V>" ? <SID>MapMsg("Message") : "s\"\<C-R>\"\<Esc>"
|
||||||
exec 'vmap <expr> ' . s:leader . '" visualmode() == "<C-V>" ? ' .
|
exec 'vmap <expr> ' . s:leader . '" visualmode() == "<C-V>" ? <SID>MapMsg("' . s:VMapMsg . '") : "s\"\<C-R>\"\<Esc>"'
|
||||||
\ "'I\\\"<Left><BS><Right><Esc>' : " .
|
|
||||||
\ '"s\"\<C-R>\"\<Esc>"'
|
|
||||||
else
|
else
|
||||||
|
|
||||||
"vmap <expr> q' visualmode() == "<C-V>" ? "I\\'\<Left>\<BS>\<Right>\<Esc>" : "s'\<C-R>\"'\<Esc>"
|
" vmap <expr> q' visualmode() == "<C-V>" ? <SID>MapMsg("Message") : "s'\<C-R>\"'\<Esc>"
|
||||||
exec 'vmap <expr> ' . s:leader . quote .
|
exec 'vmap <expr> ' . s:leader . quote . ' visualmode() == "<C-V>" ? <SID>MapMsg("' . s:VMapMsg . '") : "s' . quote .'\<C-R>\"' . quote . '\<Esc>"'
|
||||||
\ ' visualmode() == "<C-V>" ? "I\\' . quote .
|
|
||||||
\ '\<Left>\<BS>\<Right>\<Esc>" : "s' . quote .
|
|
||||||
\ '\<C-R>\"' . quote . '\<Esc>"'
|
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
@@ -263,4 +265,5 @@ if s:expand_space
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
"}}}1
|
"}}}1
|
||||||
|
"echomsg "finished!"
|
||||||
" vim:foldmethod=marker:foldcolumn=4
|
" vim:foldmethod=marker:foldcolumn=4
|
||||||
|
|||||||
Reference in New Issue
Block a user