From ee477abc798c718397266582c966950549ec70bf Mon Sep 17 00:00:00 2001 From: Israel Chauca Fuentes Date: Thu, 13 Aug 2009 04:32:16 -0500 Subject: [PATCH] Do nothing if blockwise visual mode is active and autocomplete is enabled. --- delimitMate.vim | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/delimitMate.vim b/delimitMate.vim index f322024..ad82c51 100644 --- a/delimitMate.vim +++ b/delimitMate.vim @@ -152,8 +152,15 @@ function! s:ResetMappings() endfor endfunction +function! s:MapMsg(msg) + redraw + echomsg a:msg + return "" +endfunction + " Mappings:{{{1 +let s:VMapMsg = "delimitMate doesn't work on blockwise visual mode when autocomplete is enabled" call s:ResetMappings() if s:autocomplete == 0 " Don't auto-complete:{{{2 @@ -216,32 +223,27 @@ else " Wrap the selection with matching pairs: let s:i = 0 while s:i < len(s:paired_delims) - " But only insert opening delimiter if blocking visual is active: - " vmap q( visualmode() == "" ? "I(\" : "s()\\"\" - exec 'vmap ' . s:leader . s:left_delims[s:i] . ' visualmode() == "" ? "I' . s:left_delims[s:i] . '\" : "s' . s:left_delims[s:i] . s:right_delims[s:i] . '\\"\"' + " But do nothing if blockwise visual mode is active: + " vmap q( visualmode() == "" ? MapMsg("Message") : "s(\\"\" + exec 'vmap ' . s:leader . s:left_delims[s:i] . ' visualmode() == "" ? MapMsg("' . s:VMapMsg . '") : "s' . s:left_delims[s:i] . '\\"\"' - " But only insert closing delimiter if blocking visual is active: - "vmap q) visualmode() == "" ? "A)\" : "s"\\""\" - exec 'vmap ' . s:leader . s:right_delims[s:i] . ' visualmode() == "" ? "A' . s:left_delims[s:i] . '\" : "s' . s:left_delims[s:i] . s:right_delims[s:i] . '\\"\"' + " But do nothing if blockwise visual mode is active: + " vmap q) visualmode() == "" ? MapMsg("Message") : "s"\\""\" + exec 'vmap ' . s:leader . s:right_delims[s:i] . ' visualmode() == "" ? MapMsg("' . s:VMapMsg . '") : "s' . s:left_delims[s:i] . '\\"\"' let s:i = s:i + 1 endwhile - " Wrap the selection with matching quotes, but only insert the opening - " quote if blocking visual is active: + " Wrap the selection with matching quotes, but do nothing if blockwise visual + " mode is active: for quote in s:quote_delims if quote == '"' " Ugly fix for double quotes: - " vmap q" visualmode() == "" ? 'I\"' : "s\"\\"\" - exec 'vmap ' . s:leader . '" visualmode() == "" ? ' . - \ "'I\\\"' : " . - \ '"s\"\\"\"' + " vmap q" visualmode() == "" ? MapMsg("Message") : "s\"\\"\" + exec 'vmap ' . s:leader . '" visualmode() == "" ? MapMsg("' . s:VMapMsg . '") : "s\"\\"\"' else - "vmap q' visualmode() == "" ? "I\\'\\\\" : "s'\\"'\" - exec 'vmap ' . s:leader . quote . - \ ' visualmode() == "" ? "I\\' . quote . - \ '\\\\" : "s' . quote . - \ '\\"' . quote . '\"' + " vmap q' visualmode() == "" ? MapMsg("Message") : "s'\\"'\" + exec 'vmap ' . s:leader . quote . ' visualmode() == "" ? MapMsg("' . s:VMapMsg . '") : "s' . quote .'\\"' . quote . '\"' endif endfor endif @@ -263,4 +265,5 @@ if s:expand_space endif "}}}1 +"echomsg "finished!" " vim:foldmethod=marker:foldcolumn=4