LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1033|回复: 4

Emacs 中无法激活使用 fcitx 输入法

[复制链接]
发表于 2010-10-4 19:21:43 | 显示全部楼层 |阅读模式
locale  命令输出:
  1. LANG=en_US.UTF-8
  2. LC_CTYPE="en_US.UTF-8"
  3. LC_NUMERIC="en_US.UTF-8"
  4. LC_TIME="en_US.UTF-8"
  5. LC_COLLATE="en_US.UTF-8"
  6. LC_MONETARY="en_US.UTF-8"
  7. LC_MESSAGES="en_US.UTF-8"
  8. LC_PAPER="en_US.UTF-8"
  9. LC_NAME="en_US.UTF-8"
  10. LC_ADDRESS="en_US.UTF-8"
  11. LC_TELEPHONE="en_US.UTF-8"
  12. LC_MEASUREMENT="en_US.UTF-8"
  13. LC_IDENTIFICATION="en_US.UTF-8"
  14. LC_ALL=
复制代码


Emacs 配置文件:
  1. ; 语言环境
  2. (set-language-environment 'Chinese-GB)

  3. (set-buffer-file-coding-system 'euc-cn)
  4. (set-clipboard-coding-system 'euc-cn)
  5. (set-keyboard-coding-system 'euc-cn)
  6. (set-selection-coding-system 'euc-cn)
  7. (set-terminal-coding-system 'euc-cn)

  8. ; 屏蔽 C - <Space>,启用输入法
  9. (global-set-key (kbd "C-SPC") 'nil)   
复制代码


使用 C - \ 只能调用 emacs 自带的 chinese-py 输入法

google 了好久,基本都是针对 locale 为 中文的设置,还有就是比较早的资料,有些参数
emacs 23 中没有,提示 错误。

希望各位 emacs 前辈,不吝赐教,非常感激!!!
发表于 2010-10-4 20:59:09 | 显示全部楼层
如果其他X程序可以使用的话,就把LC_CTYPE设置成zh_CN.utf8,我已经看过代码,locale不对的话,使用XIM生成字体会不成功。

具体代码在:
src/xfns.c: create_frame_xic()
xic = XCreateIC (xim,
               XNInputStyle, xic_style,
               XNClientWindow, FRAME_X_WINDOW (f),
               XNFocusWindow, FRAME_X_WINDOW (f),
               XNStatusAttributes, status_attr,
               XNPreeditAttributes, preedit_attr,
               NULL);

LC_CTYPE没有设置为zh_CN.utf8,那么这个XCreateIC返回NULL,你就调不出输入法了。
你也不用试其他输入法了,scim,ibus,只要用XIM与emacs通信的,通通不行。我怀疑试xorg的bug,但是X嘛,没有人想去看它的代码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-4 21:27:01 | 显示全部楼层
wsw兄,fcitx 在其他软件下面,在英文下可以正常工作的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-5 21:47:53 | 显示全部楼层

  1. locale
  2. LANG=en_US.UTF-8
  3. LC_CTYPE=zh_CN.UTF-8
  4. LC_NUMERIC="en_US.UTF-8"
  5. LC_TIME="en_US.UTF-8"
  6. LC_COLLATE="en_US.UTF-8"
  7. LC_MONETARY="en_US.UTF-8"
  8. LC_MESSAGES="en_US.UTF-8"
  9. LC_PAPER="en_US.UTF-8"
  10. LC_NAME="en_US.UTF-8"
  11. LC_ADDRESS="en_US.UTF-8"
  12. LC_TELEPHONE="en_US.UTF-8"
  13. LC_MEASUREMENT="en_US.UTF-8"
  14. LC_IDENTIFICATION="en_US.UTF-8"
  15. LC_ALL=

  16. ; 语言环境
  17. (set-language-environment 'Chinese-GB)

  18. (set-buffer-file-coding-system 'euc-cn)
  19. (set-clipboard-coding-system 'euc-cn)
  20. (set-keyboard-coding-system 'euc-cn)
  21. (set-selection-coding-system 'euc-cn)
  22. (set-terminal-coding-system 'euc-cn)

  23. ; 屏蔽 C - <Space>,启用输入法
  24. (global-set-key (kbd "C-SPC") 'nil)

复制代码


问题:
1.按 C-Space 提示 :C-SPC is undefined
2.使用 M-x set-selection-coding-system ,然后,Tab 补全,候选选项值列表有 上百种。
   我想知道,关于 中文的选项值的 解释,但不知道用哪个命令,使用 C-h a/f 只有关于:
   set-selection-coding-system 的解释。

谢谢!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-8 11:12:50 | 显示全部楼层
我换用了 Scim 依旧提示 :C-SPC is undefined

这到底是不是 输入法的问题,还是 Emacs 的配置的问题?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表