google了也看了论坛其他中文输入的解决办法,却依然未卵。
我用的archlinux + i3WM (GUI), 安装了fctix 下的google pinyin. 用的emacs 下的spacemacs配置。Troubleshooting如下:
- chromium 和 urxvt terminal 下 google pinyin能ctrl+spc 顺利切换和输入中文 (我现在就是在chroium下写的这个提问)
- 但是在emacs GUI 下, 切换google pinyin 没反映,fctix的icon保持依然是英文键盘。
- 尝试了ctrl-spc切换键盘, 无效
- 尝试右键点击fctix图标-> input method -> 选中 google pinyin. 如果当下激活窗口是chroium 会出现google pinyin 图标, 如果当下激活窗口是emacs, 是英文键盘的图标(也就是说无法输入中文)。
- 尝试
emacs -Q &
启动裸体emacs, 依然有如上问题
- 尝试
LC_CTYPE=zh_CN.UTF-8 emacs &
运行emacs, 依然有如上问题
- 尝试
LC_CTYPE=zh_CN.UTF-8 emacs -Q &
运行裸体emacs, 依然有如上问题
- 尝试 运行emacs在terminal下, 可以输入中文。 但是emacs在GUI下才是我要的…
- 已经在.xinitrc 下 加入了如下。 如果不加这3行,连terminal下都无法输入中文
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
实在是黔驴技穷了, 求大家帮忙!!
1 个赞
最好的办法是修改.bashrc:export LANG=en_US.UTF-8export LC_CTYPE=zh_CN.UTF-8
图形界面的emacs在 emacs-china有帖子如下(其中~/xprofile测试有效):对了,Linux上还有一个坑,就是有的情况下(比如我的Archlinux+LXDE)无论你的bash下怎么设置环境变量,你的图形界面的LC_CTYPE永远是en_US,这就导致你无论怎么设置,从图形界面上启动emacs,就是激活不了fcitx输入法。验证的方法就是,图形界面上启动emacs后,在emacs里 M-x shell-command 回车,然后输入 locale 查看当前emacs环境的locale设置(spacemace配置)。然后修改的办法就是除了设置shell的环境变量以外,还要设置图形界面的环境变量:
vim ~/.xprofile
export LANG=en_US.UTF-8
export LC_CTYPE=zh_CN.UTF-8或者vim /etc/locale.conf
LANG=en_US.UTF-8
LC_CTYPE=zh_CN.UTF-8这个坑其他linux上也要注意一下
来源: Ubuntu 下 Emacs 中无法激活搜狗输入法 - #15,来自 liugdft
3 个赞
我遇到过类似的问题,我只要从终端打开也输入不了中文,但是如果从启动器中打开就可以。
在用户目录下建立.xprofile文件,加入
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
试一下吧
可以的话把fcitx-diagnose的结果贴出来,我用的是archlinux+gnome3,前两天也出现这个问题,最后解决了,但首先得把emacs的C-SPC本身按键kill掉,在你的配置加入 (global-set-key (kbd “C-SPC”) 'nil)
如果还有问题的话,可以看一下是不是安装了ibus,我的gnome默认安装ibus,卸载之后就没有其他问题了,emacs可以输入中文了
1 个赞
这个配置我也在troubleshooting的时候使用过了, 而且现在的配置就是屏蔽了C-SPC的。 依然未果。
其实不只是中文, 我还有个芬兰与键盘, 也不能。 简单的说就是除了默认的英文键盘,其他的都不让切换(摊手
的确在emacs GUI下看locale LC_CTYPE=en_US.UTF-8, 但是不管我用什么办法, 就是没法在emacs GUI下改动这个参数… 真的很无奈啊。。。
算了。 我就在terminal下用256color凑合吧, 打开速度还比GUI快一点。 习惯了就好^^,这个坑有点大。
谢谢大家的帮忙!
感谢! LC_ALL=zh_CN.UTF-8 emacs
这个命令的确可以使用fcitx-googlepinyin了!
但是代价太大了, emacs下好多东西都和locale挂钩,比如flyspell默认的dictionary, org 下 图标的样式, 还有各种各样突然毛出来的中文。。。
我感觉还是只能在终端下用emacs了, 虽然也不是完美,但是比 zh_CN locale要能接受一些。
1 个赞
还有一种方法,用emacs里的输入法而不是系统的。我已经用了几个月了。还不错。这是我当初安装的时候写的博客。
$ sudo mv /usr/bin/emacs /usr/bin/emacs.origin
$ sudo touch /usr/bin/emacs
$ sudo vim /usr/bin/emacs
#!/bin/zsh
LC_CTYPE=zh_CN.UTF-8
/usr/bin/emacs.origin “$@”
$ vim ~/.xinitrc
…
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
fcitx &
if [ -f $HOME/.Xmodmap ]; then
/usr/bin/xmodmap $HOME/.Xmodmap
fi
…
$ vim ~/.Xmodmap
!
! Swap Caps_Lock and Control_L
!
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
$ vim .config/fcitx/config
…
TriggerKey=CTRL_RSPACE
…
IMSwitchHotkey=ALT_SUPER
…
1 个赞
我这边 Ubuntu 下英文的 locale 也没问题。不清楚你的环境下是不是只有 Emacs 有这个问题,还是所有的 GTK 程序都有这个问题?要是不是的话,我觉得有可能跟 Emacs 没关系,Emacs 只是一只普通的 GTK 程序而已。不妨到 Arch 的论坛问问。
我也用了呆神的PYIM插件, 的确是很不错的输入法。不过我除了英文,中文还有芬兰语。。平时常写的东西需要3种输入法切换,所以内置输入法不适合我
ubuntu下的确没有这个问题。 @xianghx 给的方法解决了输入法不跳出的问题。 不过很多emacs设置跟着就用了zh_CN。。需要手动再配置。。实在代价有点大。。
我慢慢尝试用terminal下的emacs看效果如何吧。
再次感谢各位大大的帮忙!
1 个赞
我的新装的 Ubuntu 16.04 (默认的 Unity 和英文环境)也有类似的问题,切换至 fcitx-googlepinyin 的按键确实是被操作系统接受了,但是输入法还是调不出来。其他的 GTK 程序比如 gedit 之类的都没有这个问题。真是太奇怪了。
根据 Arch wiki 上的提示(Emacs 无法使用输入法),一个 work-around 是把 LC_CTYPE
设为中文,我用的是下面的方法:
$ LC_CTYPE=zh_CN.UTF-8 emacs --daemon
$ emacsclient --create-frame --no-wait
(背景:我只习惯用 GUI 下的 Emacs,不然的话鼠标、菜单、按钮、字体等都用不上了。)
只设置 LC_CTYPE
的话,ispell 还是能正常工作(对我来说是能检测英文)的。
目前还是不清楚问题出在哪里,以及如何解决。
1 个赞