Hi,

I believe we found the condition to crash vim:

---------------------------------------------------
while 1
    inoremap <expr><Plug>VimimChineseMode <SID>VimimChineseMode()
endwhile
---------------------------------------------------

Note: the condition is that <Plug> name is not in consistence with
<SID> name.  (ie, no <SID>ChineseMode() function available).

After reading doc on <Plug>, I found naming of both has to be in sync.

However, for normal case, it seems perfect okay to do something like:
---------------------------------------------------
while 1
    imap <C-Bslash> <Left>
endwhile
---------------------------------------------------




PS: comparison:

(1) The crashing function when running multiple times:

" -----------------------------------------
function! s:vimim_chinese_mode_mapping_on()
" -----------------------------------------
    inoremap <expr><Plug>VimimChineseMode <SID>VimimChineseMode()
    imap <C-Bslash> <Plug>VimimChineseMode
endfunction


(2) The fixed version:

" -----------------------------------------
function! s:vimim_chinese_mode_mapping_on()
" -----------------------------------------
    inoremap <unique> <expr> <Plug>VimimChinesemode <SID>Chinesemode()
    imap <C-Bslash> <Plug>VimimChinesemode
endfunction


-- 
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php

Reply via email to