fcitx.vim 1.0 正式发布
Fcitx 输入法自动切换
在离开/重新进入插入模式时自动切换输入法状态,以便在普通模式下始终是英文输入模式,切换回插入模式时恢复离开时的输入法输入模式。状态为每个缓冲区单独保存,所以在中文文档和英文代码间交叉跳转编辑也得心应手!
无需任何配置!
要求:
fcitx 版本 3.6 以上,建议 fcitx 4.0 以上
可选:
Python 3 或者 Python 支持以获得更快更好的效果。注意对于 vim 版本<7.3.288,如果同时编译了 Python 2 & 3 支持,因为此 vim 不能同时运行两个版本的 Python,而本脚本首先检查 Python3,所以会导致出错或者 Python 2 不可用。
开发:
它是 https://github.com/lilydjwg/dotvim 的一部分。
github mirror: https://github.com/vim-scripts/fcitx.vim
安装:
解压到 ~/.vim 下即可。如果没有并且不准备使用 Python 接口,可只将 so/fcitx.vim 放到 ~/.vim/plugin 目录下。
本博客从中国大陆以外的地区访问体验更佳。

Oct 08, 2011 12:50:37 AM
多谢..!!
Oct 08, 2011 01:18:01 AM
这个好哇,一直在用呢。fcitx 4.1.2的fcitx-remote也有所改变,以前是变英文,现在是直接关闭输入法。
Oct 08, 2011 01:24:35 AM
搞错了,它是把界面隐藏了。。。不是关闭。
Oct 08, 2011 07:33:03 PM
我现在用的是小小输入法,就是yong。有没有可能也做到这种切换?
Oct 08, 2011 08:41:19 PM
这取决于 yong 有没有提供相应的接口了。
Oct 09, 2011 03:09:39 PM
Great! 这个插件也是我离不开fcitx的原因之一。。
Oct 10, 2011 07:25:01 PM
一个小问题,在输入的时候中文输入,可是ESC之后再成为命令模式之后可是还是出先中文,
fcitx版本,4.1.2
vim版本 7.3
谢谢
Oct 10, 2011 07:53:04 PM
我猜想你说的“命令模式”是指“插入模式”?
fcitx.vim 的设计是这样子的,在某个 buffer 离开插入模式时是什么输入法状态,回到插入模式时就是什么输入法状态。
如果你只要离开插入模式时关闭输入法的话:
au InsertLeave * silent !fcitx-remote -c
Oct 10, 2011 09:30:06 PM
就是比如说按i进入输入模式,此时用fcitx输入中文,再ESC键回到命令模式,也就是hjkl移动在的那个模式,ps:也称正常模式吗?
我希望此时命令模式完全就是英文的,应该就是lz的插件的作用吧,不知道是不是我配置有问题
Oct 10, 2011 09:32:40 PM
额,貌似是可以了,等等一下,速度太快,貌似需要反映时间,谢谢
Oct 10, 2011 09:54:59 PM
呃,那个模式叫“普通模式”,你没看过中文的vimtutor或是文档吗?”命令模式“难道是vi时代的称呼?
Oct 10, 2011 09:56:28 PM
你的没 Python 支持吗?为加快反应速度,我才弄的 Python 版本呢。
Oct 11, 2011 06:48:32 PM
爽的一塌糊涂!非常感谢!
Oct 11, 2011 11:53:13 PM
我还没顶啊
顶起!顶起!
凡是需要处理中文的地方,这个插件是对我影响最大的一个。
Oct 12, 2011 11:14:53 PM
把小小改成fcitx试用下。
提个问题:没有独立的github repo吗? 那似乎就不能用vundle更新最新版了。
Oct 12, 2011 11:31:34 PM
所有发布到 vim.org 的脚本都自动拥有 github repo 的哦 ;-)
https://github.com/vim-scripts/fcitx.vim
Oct 13, 2011 12:46:47 AM
那个我是知道的,但是我想要dev channel的啊。。。
Oct 13, 2011 10:35:12 AM
独立的话太麻烦了。。。而且这个插件估计再有什么变化也是因为 fcitx 的接口发生了变化,那时我会第一时间更新到 vim.org 的。
Oct 24, 2011 10:05:24 AM
非常感谢!我有个小问题,当我用Ctrl+c离开插入模式时,不会自动切换输入法,而按Esc可以切换,为什么会这样呢
Oct 24, 2011 11:34:15 AM
因为Ctrl+c跟Esc本来就不是等价的。fcitx.vim是依靠InsertLeave 和 InsertEnter两个事件的自动命令来进行自动切换,而insert模式下的Ctrl_C是quit insert mode, 不是Leave. 你:help i_Ctrl_c看下就知道了。
Oct 24, 2011 11:49:35 AM
明白了。看帮助文档之后才知道原来可以用Ctrl_[代替Esc,谢谢Fermat:)
Dec 17, 2011 11:37:50 PM
vim 要编译有python支持才能使用此插件吗?
因为启动时出现如下提示:
fcitx.vim: 没有 Python 支持,尝试使用旧版本。
系统中已经安装有python2/3。
Dec 17, 2011 11:49:16 PM
要编译有 python 支持才能使用更好的 Python 接口版本,否则只好用 VimScript 调用数次 fcitx-remote 命令了。
Feb 10, 2012 10:15:20 PM
还是继续用小小,
这里有小小的作者的vim 输入法切换配置。你可以放到你的插件里。
http://yong.dgod.net/read.php?tid=64
Feb 10, 2012 10:26:48 PM
不加。检测用的是什么输入法太费时了。而且,我做这个插件的目的在于「高效」,但是它这个用的是 system() 调用。
唉,我真想直接调用 Xtest 来取代 im* 选项算了。。。
Feb 10, 2012 11:47:12 PM
也好,而且这个输入法目前的vim切换还存在问题。
Apr 13, 2012 02:10:39 PM
gvim fcitx 在启动嵌入预编辑字符的时候,这个插件不起作用。当离开插入模式时,输入法自动就关掉了,以后也不能恢复过来。
Apr 13, 2012 02:32:35 PM
我这里正常。你可能需要去除 GVim 对输入法的 hack——https://github.com/lilydjwg/myvimsrc/commit/87e01b99f43b081610f7e89e6640054b6926165c
May 05, 2012 09:27:19 AM
可以的.见小小官方论坛说明,不过只能在*nix系统下使用