fcitx运行的编码环境是zh_CN.UTF-8或者en_US.UTF-8,但是zh_CN.UTF-8存在的问题是在字符终端下很多程序会显示乱码,比如vim,所以自己设置了编码环境为en_US.UTF-8,这样既可以用fcitx,也可以在没有图形界面的时候轻松一点,但随之而来的让人头疼的问题是emacs中无法用fcitx,网上搜了很久,始终解决不了,不论是在linux或是freebsd下,这都很让人头疼。

 最终发现emacs中使用fcixt需LC_CTYPE设置为zh_CN.UTF-8,比如在shell中:

LC_CTYPE=zh_CN.UTF-8 emacs

 启动emacs后就可以使用fcitx了,但是这样输入很麻烦,虽然可以在shell的配置文件中用alias设置

alias emacs='LC_CTYPE=zh_CN.UTF-8 emacs'

这样在shell中启动emacs时会方便些,但是在用fbrun或是gmrun来启动emacs可就无效了。

我用openbox,所以直接给emacs设置了快捷键,但是在配置文件中使用LC_CTYPE=zh_CN.UTF-8 emacs是无法运行的,

好在有个命令env,可以用它来给emacs绑定快捷键,在rc.xml中绑定快捷键是设置为:

<execute>env LC_CTYPE=zh_CN.UTF-8 emcas</execute>

这样就可以通过快捷键来启动emacs,在emacs使用fcitx了。重点是env来改变运行环境,至于在openbox或是别的图形环境下估计就大同小异了。这在linux或是freebsd中一样的,在slackware13.37和freebsd8.2中是可以的。