分类: LINUX
2013-04-24 22:30:56
一直以来,在vim当中输入汉字都有点小遗憾,因为平常只在vim里面写代码,所以勉强用vimim对付,但vimim有个最大的问题,有的时候如果网络不理想,会卡在那里很久,就像假死一样,而且最让人吐槽的是 vimim的文档,英文的说明比中文的好懂得多, 到现在我也没弄明白不同版本的中文说明到底哪个是最终版本。这两天使着fcitx的搜狗输入法,感觉非常棒,又动了调整vim和输入法的念头,简单搜索了一下,提到fcitx支持remote模式,能够配合自动切换输入法的状态。实现退出插入模式时,关闭fcitx;进入插入模式时,启用fcitx。
"##### auto fcitx ########### let g:input_toggle = 1 function! Fcitx2en() let s:input_status = system("fcitx-remote") if s:input_status == 2 let g:input_toggle = 1 let l:a = system("fcitx-remote -c") endif endfunction function! Fcitx2zh() let s:input_status = system("fcitx-remote") if s:input_status != 2 && g:input_toggle == 1 let l:a = system("fcitx-remote -o") let g:input_toggle = 0 endif endfunction set ttimeoutlen=150 "退出插入模式 autocmd InsertLeave * call Fcitx2en() "进入插入模式 autocmd InsertEnter * call Fcitx2zh() "##### auto fcitx end ######
方法二可能存在性能问题,所以 里建议使用fcitx.vim插件。
我在初次使用上述两种方法的时候都没有成功,最后确认:
- 设置(Fcitx配置>>全局配置>>程序>>在窗口间共享状态)为否
使用命令在外部设置的方法:(之所以我的机器需要这步是因为在一些java软件里输入法的状态不能自动保持)
- 打开配置文件 ~/.config/fcitx/config文件,首先备份一下。
- 找到 [Program] 段,把 ShareStateAmongWindow=PerProgram 改成 ShareStateAmongWindow=No
- 运行命令 fcitx-remote -t 使新配置文件生效。