Chinaunix首页 | 论坛 | 博客
  • 博客访问: 190146
  • 博文数量: 28
  • 博客积分: 1490
  • 博客等级: 上尉
  • 技术积分: 310
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-17 10:01
文章分类
文章存档

2012年(3)

2011年(2)

2008年(2)

2007年(7)

2006年(14)

我的朋友

分类: LINUX

2007-10-22 19:50:12

本文链接: http://blog.chinaunix.net/u/25081/showart.php?id=405439

其实很简单,只是因为自己写错了,结果搞了很久。

fctix 需要读取 LC_CTYPE 环境变量,当然要确保是 zh_CN 开头的编码了, 比如 zh_CN.UTF-8, zh_CN.GBK 之类的了,已证实只写 zh_CN 即可。

也就是说当前只要确保以下几个变量的设置就可以了:

export LC_CTYPE="zh_CN.UTF-8"

export XMODIFIERS="@im=fcitx"

export XIM=fcitx

export XIM_PROGRAM=fcitx


要让这些变量起作用,最好的方法就是把他加入到启动配置里面。比如: /etc/profile , ~/.bash_profile, 或者 ~/.bashrc, 由于 .bash_profile 一般都会读取 .bashrc 所以我就加在 .bashrc 文件里面。

启动的方式有很多,可以加到 /etc/init.d/ 目录下的某一个自己添加的文件;或者在 gnome 的会话管理器中添加; 或者 Alt+F2 然后直接输入 fctix 。

启动 fctix 后, Ctrl+Space 就可以切换了。

对于中文环境,你需要设置 LANG 环境变量为 LANG=zh_CN.UTF-8 之类的, 而英文环境就要设成 LANG=en_US.UTF-8 , 不论是哪一种,都要注意了,这时还有另外一个变量也在起作用,他会决定你当前的设置是否起作用。哪就是 LC_ALL , 顾名思义,他是 BOSS 级别的。摘录 man locale 里面的一段:

LC_ALL

If set to a non-empty string value, override the values of all the other internationalization variables.


所以这时如果你没有检查这个变量,你上面的设定说不定就是白忙活了。干脆让 BOSS 休息算了!

export LC_ALL=


所以你的设置应该是这样:

export LC_ALL=
export LANG="en_US.UTF-8"         # 英文环境

# export LANG="zh_CN.UTF-8"       # 中文环境

export LC_CTYPE="zh_CN.UTF-8"

export XMODIFIERS="@im=fcitx"

export XIM=fcitx

export XIM_PROGRAM=fcitx

export GTK_IM_MODULE=fctix        # 这一行可以加上


千万别写错啦!我就是将 LANG 的值写错了,将 en_US.UTF-8 写成了 en.UTF-8, 这压根儿就不存在的,于是我的环境还是以前设置的中文环境(那时设置了 LC_ALL 为 zh_CN.UTF-8)。如果这时你设置了 LC_ALL 值为空,那么你的恶梦也来了,很多地方的编码设置都不正确,比如 console, vim 之类的。我看了 vim 的 set encoding 发现是拉丁字符集,中文显示乱码没商量。

查看你的设置是否正确的方式是运行 locale , 她会忠实地给您列出当前的相关设置,如果您错待她了,她会抱怨的。看看我以前犯的错吧:

sangix@localhost ~ $ locale

locale: Cannot set LC_MESSAGES to default locale: No such file or directory

locale: Cannot set LC_ALL to default locale: No such file or directory

LANG=en.UTF-8

LC_CTYPE=zh_CN.UTF-8

...


本文链接: http://blog.chinaunix.net/u/25081/showart.php?id=405439

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