启用vimim后再退出,导致<C-Space>失效,不能启用系统的输入法了,

34 views
Skip to first unread message

Wei Qi

unread,
May 16, 2012, 12:01:46 PM5/16/12
to vi...@googlegroups.com
就是不管用点石成金或是<C-_>打开vimim后再退出vimim后,再使用<C-Space>就失效了,再vim中表现为只输入空格。

vimim
 
日期:公元2012年5月16日 星期三 
电脑:win32  0.029905 seconds 
版本:gvim=703 
编码:utf-8 ucs-bom,utf-8,gbk,gb2312,cp936,gb18030,big5,euc-jp,euc-kr,latin1 
环境:Chinese (Simplified)_People's Republic of China.936 
词库:标准字库:F:\Users/.vimim/vimim.cjk.txt 
词库:英文词库:F:\Users/.vimim/vimim.txt 
词库:五笔词库:F:\Users/.vimim/vimim.wubihf.txt 
词库:云词库:百度云 搜狗云 QQ云 谷歌云  
联网:HTTP executable: F:\Users/.vimim/libvimim 
输入:VimIM 五笔海峰 四角号码 英文  
选项:vimimrc 
    :let g:vimim_plugin = 'F:\Users/.vimim'  
  " :let g:vimim_cloud = 'baidu,sogou,qq,google'  
  " :let g:vimim_map = ''  
  " :let g:vimim_mode = 'dynamic'  
  " :let g:vimim_mycloud = 0  
  " :let g:vimim_punctuation = 2  
  " :let g:vimim_shuangpin = 0  
  " :let g:vimim_toggle = 'wubi,baidu,sogou,qq,google' 
 

pansz

unread,
May 16, 2012, 9:15:53 PM5/16/12
to vi...@googlegroups.com
我大致明白了,这目测确实是个问题,感觉是模式的问题。

就是说在 vim 启动了 vimim 之后,内部被设定为了某种(禁用了外部输入法?)的模式,因此即使按 ctrl-space 启动外部输入法也不能再进行输入。

1。这个问题只出现在 windows,linux 目测测试没有问题。
2。仅仅当 windows 里面存在外部输入法才有这个问题,作者本人的 windows
是英文版并且没有外部输入法,所有的中文输入都借助vim完成,我估计他是不会测试出这个问题的。

目测如果在编译 gvim.exe 时禁用输入法控制能解决这个问题。linux下无问题就是因为 linux 下无法对外部输入法进行控制(无法使能关闭)。

以上只是我的猜测。

还有一种可能就是作者确实把 ctrl-space 吃掉了。如果是这种情况,你考虑把系统输入法多增加一个快捷键试试看。

vimim

unread,
May 25, 2012, 7:31:59 PM5/25/12
to vi...@googlegroups.com

>> 还有一种可能就是作者确实把 ctrl-space 吃掉了。

不太可能呀。我哪有那么大的本事。:)

如果要定义ctrl-space, 在Windows上我试过可行。
:let g:vimim_map = 'c-space'

ctrl-space 的定义是:
    elseif g:vimim_map =~ 'c-space'   " use Ctrl-Space
        if has("win32unix")
            nmap <C-@> <C-_>
            imap <C-@> <C-_>
        else
            imap <C-Space> <C-_>
            nmap <C-Space> <C-_>
        endif

vimim

unread,
May 25, 2012, 7:37:40 PM5/25/12
to vi...@googlegroups.com

>> 内部被设定为了某种(禁用了外部输入法?)的模式

VimIM 内部没有设置禁用了外部输入法,连想也没有想过。
感觉是Windows 如何启动ctrl-Space的问题。
如果重新启动Vim, Ctrl-Space应该可行。

我的结论是,Windows的Ctrl-Space非法绑架keyboard  :)

vimim

unread,
Jun 4, 2012, 4:44:10 PM6/4/12
to vi...@googlegroups.com
>> 还有一种可能就是作者确实把 ctrl-space 吃掉了。

poet兄牛,或许真的是。


新版去掉一个vimrc选项imdisable.


function! s:vimim_set_vimrc()
    set title noshowmatch shellslash imdisable
    set completeopt=menuone
    set complete=.
    set nolazyredraw
    set omnifunc=VimIM
endfunction


*'imdisable'* *'imd'* *'noimdisable'* *'noimd'*
'imdisable' 'imd' boolean (default off, on for some systems (SGI))
global
{not in Vi}
{only available when compiled with the |+xim|,
|+multi_byte_ime| or |global-ime| features}
When set the Input Method is never used.  This is useful to disable
the IM when it doesn't work properly.
Currently this option is on by default for SGI/IRIX machines.  This
may change in later releases.

Reply all
Reply to author
Forward
0 new messages