fcitx.vim 1.0 正式发布

依云 posted @ Oct 07, 2011 11:48:42 PM in Vim with tags vim fcitx , 1659 阅读

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 目录下。


插件地址http://www.vim.org/scripts/script.php?script_id=3764

本博客从中国大陆以外的地区访问体验更佳。

荒野无灯 说:
Oct 08, 2011 01:18:01 AM

这个好哇,一直在用呢。fcitx 4.1.2的fcitx-remote也有所改变,以前是变英文,现在是直接关闭输入法。

荒野无灯 说:
Oct 08, 2011 01:24:35 AM

搞错了,它是把界面隐藏了。。。不是关闭。

amao 说:
Oct 08, 2011 07:33:03 PM

我现在用的是小小输入法,就是yong。有没有可能也做到这种切换?

Avatar_small
依云 说:
Oct 08, 2011 08:41:19 PM

这取决于 yong 有没有提供相应的接口了。

lainme 说:
Oct 09, 2011 03:09:39 PM

Great! 这个插件也是我离不开fcitx的原因之一。。

freetstar 说:
Oct 10, 2011 07:25:01 PM

一个小问题,在输入的时候中文输入,可是ESC之后再成为命令模式之后可是还是出先中文,

fcitx版本,4.1.2
vim版本 7.3

谢谢

Avatar_small
依云 说:
Oct 10, 2011 07:53:04 PM

我猜想你说的“命令模式”是指“插入模式”?

fcitx.vim 的设计是这样子的,在某个 buffer 离开插入模式时是什么输入法状态,回到插入模式时就是什么输入法状态。

如果你只要离开插入模式时关闭输入法的话:
au InsertLeave * silent !fcitx-remote -c

freetstar 说:
Oct 10, 2011 09:30:06 PM

就是比如说按i进入输入模式,此时用fcitx输入中文,再ESC键回到命令模式,也就是hjkl移动在的那个模式,ps:也称正常模式吗?

我希望此时命令模式完全就是英文的,应该就是lz的插件的作用吧,不知道是不是我配置有问题

freetstar 说:
Oct 10, 2011 09:32:40 PM

额,貌似是可以了,等等一下,速度太快,貌似需要反映时间,谢谢

Avatar_small
依云 说:
Oct 10, 2011 09:54:59 PM

呃,那个模式叫“普通模式”,你没看过中文的vimtutor或是文档吗?”命令模式“难道是vi时代的称呼?

Avatar_small
依云 说:
Oct 10, 2011 09:56:28 PM

你的没 Python 支持吗?为加快反应速度,我才弄的 Python 版本呢。

qingxiaojin 说:
Oct 11, 2011 06:48:32 PM

爽的一塌糊涂!非常感谢!

Fermat 说:
Oct 11, 2011 11:53:13 PM

我还没顶啊
顶起!顶起!

凡是需要处理中文的地方,这个插件是对我影响最大的一个。

Avatar_small
Rykka 说:
Oct 12, 2011 11:14:53 PM

把小小改成fcitx试用下。
提个问题:没有独立的github repo吗? 那似乎就不能用vundle更新最新版了。

Avatar_small
依云 说:
Oct 12, 2011 11:31:34 PM

所有发布到 vim.org 的脚本都自动拥有 github repo 的哦 ;-)
https://github.com/vim-scripts/fcitx.vim

Avatar_small
Rykka 说:
Oct 13, 2011 12:46:47 AM

那个我是知道的,但是我想要dev channel的啊。。。

Avatar_small
依云 说:
Oct 13, 2011 10:35:12 AM

独立的话太麻烦了。。。而且这个插件估计再有什么变化也是因为 fcitx 的接口发生了变化,那时我会第一时间更新到 vim.org 的。

Avatar_small
abellong 说:
Oct 24, 2011 10:05:24 AM

非常感谢!我有个小问题,当我用Ctrl+c离开插入模式时,不会自动切换输入法,而按Esc可以切换,为什么会这样呢

Fermat 说:
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看下就知道了。

Avatar_small
abellong 说:
Oct 24, 2011 11:49:35 AM

明白了。看帮助文档之后才知道原来可以用Ctrl_[代替Esc,谢谢Fermat:)

ccczzx 说:
Dec 17, 2011 11:37:50 PM

vim 要编译有python支持才能使用此插件吗?
因为启动时出现如下提示:
fcitx.vim: 没有 Python 支持,尝试使用旧版本。
系统中已经安装有python2/3。

Avatar_small
依云 说:
Dec 17, 2011 11:49:16 PM

要编译有 python 支持才能使用更好的 Python 接口版本,否则只好用 VimScript 调用数次 fcitx-remote 命令了。

Avatar_small
Rykka 说:
Feb 10, 2012 10:15:20 PM

还是继续用小小,
这里有小小的作者的vim 输入法切换配置。你可以放到你的插件里。
http://yong.dgod.net/read.php?tid=64

Avatar_small
依云 说:
Feb 10, 2012 10:26:48 PM

不加。检测用的是什么输入法太费时了。而且,我做这个插件的目的在于「高效」,但是它这个用的是 system() 调用。

唉,我真想直接调用 Xtest 来取代 im* 选项算了。。。

Avatar_small
Rykka 说:
Feb 10, 2012 11:47:12 PM

也好,而且这个输入法目前的vim切换还存在问题。

Fermat618 说:
Apr 13, 2012 02:10:39 PM

gvim fcitx 在启动嵌入预编辑字符的时候,这个插件不起作用。当离开插入模式时,输入法自动就关掉了,以后也不能恢复过来。

Avatar_small
依云 说:
Apr 13, 2012 02:32:35 PM

我这里正常。你可能需要去除 GVim 对输入法的 hack——https://github.com/lilydjwg/myvimsrc/commit/87e01b99f43b081610f7e89e6640054b6926165c

nie 说:
May 05, 2012 09:27:19 AM

可以的.见小小官方论坛说明,不过只能在*nix系统下使用


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter