Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1573773
  • 博文数量: 410
  • 博客积分: 9563
  • 博客等级: 中将
  • 技术积分: 4517
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-03 19:59
个人简介

文章分类

全部博文(410)

文章存档

2017年(6)

2016年(1)

2015年(3)

2014年(4)

2013年(32)

2012年(45)

2011年(179)

2010年(140)

分类: 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 ###### 

注意事项

  1. 方法二可能存在性能问题,所以 里建议使用fcitx.vim插件。

  2. 我在初次使用上述两种方法的时候都没有成功,最后确认:

  • 设置(Fcitx配置>>全局配置>>程序>>在窗口间共享状态)为否

使用命令在外部设置的方法:(之所以我的机器需要这步是因为在一些java软件里输入法的状态不能自动保持)

  1. 打开配置文件 ~/.config/fcitx/config文件,首先备份一下。
  2. 找到 [Program] 段,把 ShareStateAmongWindow=PerProgram 改成 ShareStateAmongWindow=No
  3. 运行命令 fcitx-remote -t 使新配置文件生效。


阅读(3103) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~