Moved and simplified UnMap().

This commit is contained in:
Israel Chauca Fuentes
2010-05-06 02:04:30 -05:00
parent 29cb16c42e
commit e818c05e33
2 changed files with 36 additions and 82 deletions

View File

@@ -450,6 +450,38 @@ function! delimitMate#ExtraMappings() "{{{
inoremap <buffer> <Del> <C-R>=delimitMate#Del()<CR>
endfunction "}}}
function! delimitMate#UnMap() " {{{
let imaps =
\ b:delimitMate_right_delims +
\ b:delimitMate_left_delims +
\ b:delimitMate_quotes_list +
\ b:delimitMate_apostrophes_list +
\ ['<BS>', '<S-BS>', '<CR>', '<Space>', '<S-Tab>', '<Esc>'] +
\ ['<Del>', '<Up>', '<Down>', '<Left>', '<Right>', '<LeftMouse>', '<RightMouse>']
let vmaps = b:delimitMate_right_delims +
\ b:delimitMate_left_delims +
\ b:delimitMate_quotes_list
for map in imaps
if maparg(map, "i") =~? 'delimitMate'
exec 'silent! iunmap <buffer> ' . map
endif
endfor
if !exists("b:delimitMate_visual_leader")
let vleader = ""
else
let vleader = b:delimitMate_visual_leader
endif
for map in vmaps
exec 'let result = maparg("' . escape(vleader . map, '"') . '", "v") =~? "delimitMate" ? 1 : 0'
if result == 1
exec 'silent! vunmap <buffer> ' . vleader . map
endif
endfor
endfunction " }}} delimitMate#UnMap()
"}}}
" Tools: {{{

View File

@@ -132,7 +132,7 @@ function! s:Init() "{{{
let b:delimitMate_buffer = []
call s:UnMap()
call delimitMate#UnMap()
if b:delimitMate_autoclose
call delimitMate#AutoClose()
else
@@ -145,86 +145,6 @@ endfunction "}}} Init()
"}}}
" Tools: {{{
function! s:UnMap() " {{{
" No Autoclose Mappings:
for char in b:delimitMate_right_delims + b:delimitMate_quotes_list
if maparg(char,"i") =~? 'delimitMate'
exec 'silent! iunmap <buffer> ' . char
"echomsg 'iunmap <buffer> ' . char
endif
endfor
" Autoclose Mappings:
let i = 0
let l = len(b:delimitMate_matchpairs_list)
while i < l
if maparg(b:delimitMate_left_delims[i],"i") =~? 'delimitMate'
exec 'silent! iunmap <buffer> ' . b:delimitMate_left_delims[i]
"echomsg 'iunmap <buffer> ' . b:delimitMate_left_delims[i]
endif
let i += 1
endwhile
for char in b:delimitMate_quotes_list
if maparg(char, "i") =~? 'delimitMate'
exec 'silent! iunmap <buffer> ' . char
"echomsg 'iunmap <buffer> ' . char
endif
endfor
for char in b:delimitMate_right_delims
if maparg(char, "i") =~? 'delimitMate'
exec 'silent! iunmap <buffer> ' . char
"echomsg 'iunmap <buffer> ' . char
endif
endfor
for char in b:delimitMate_apostrophes_list
if maparg(char, "i") =~? 'delimitMate'
exec "silent! iunmap <buffer> " . char
endif
endfor
" Expansion Mappings:
if maparg('<BS>', "i") =~? 'delimitMate'
silent! iunmap <buffer> <BS>
"echomsg "silent! iunmap <buffer> <BS>"
endif
if maparg('<S-BS>', "i") =~? 'delimitMate'
silent! iunmap <buffer> <BS>
"echomsg "silent! iunmap <buffer> <BS>"
endif
if maparg('<CR>',"i") =~? 'delimitMate'
silent! iunmap <buffer> <CR>
"echomsg "silent! iunmap <buffer> <CR>"
endif
if maparg('<Space>',"i") =~? 'delimitMate'
silent! iunmap <buffer> <Space>
"echomsg "silent! iunmap <buffer> <Space>"
endif
if maparg('<S-Tab>', "i") =~? 'delimitMate'
silent! iunmap <buffer> <S-Tab>
"echomsg "silent! iunmap <buffer> <S-Tab>"
endif
if maparg('<Esc>', "i") =~? 'delimitMate'
silent! iunmap <buffer> <Esc>
"echomsg "silent! iunmap <buffer> <S-Tab>"
endif
" Visual Mappings:
if !exists("b:delimitMate_visual_leader")
let vleader = ""
else
let vleader = b:delimitMate_visual_leader
endif
for char in b:delimitMate_right_delims + b:delimitMate_left_delims + b:delimitMate_quotes_list
"echom "maparg(" . vleader . char .", \"v\")"
exec 'let result = maparg("' . escape(vleader . char, '"') . '", "v") =~? "delimitMate" ? 1 : 0'
if result == 1
exec 'silent! vunmap <buffer> ' . vleader . char
"echomsg 'vunmap <buffer> ' . b:delimitMate_visual_leader . char
endif
endfor
endfunction " }}} s:ExtraMappings()
function! s:TestMappingsDo() "{{{
if !exists("g:delimitMate_testing")
call delimitMate#TestMappings()
@@ -258,7 +178,7 @@ function! s:DelimitMateDo() "{{{
for ft in split(g:delimitMate_excluded_ft,',')
if ft ==? &filetype
"echomsg "excluded"
call s:UnMap()
call delimitMate#UnMap()
return 1
endif
endfor
@@ -288,6 +208,8 @@ command! DelimitMateReload call s:DelimitMateDo()
" Quick test:
command! DelimitMateTest call s:TestMappingsDo()
" Turn
" Run on file type events.
"autocmd VimEnter * autocmd FileType * call <SID>DelimitMateDo()
autocmd FileType * call <SID>DelimitMateDo()