Ubuntu 下 Emacs 中无法激活搜狗输入法


#7

这个我觉得 C -space 快捷键 在你的emacs 被占了。 c-h-k c-space 确认下。


#8

测试过加入到~/.xinitrc中,重新登录无效 在emacs中使用 (getenv "LC_CTYPE') 的结果是zh_CN.UTF-8


#9

得到的输出如下:

C-SPC runs the command set-mark-command, which is an interactive compiled Lisp function in `simple.el’.

It is bound to C-@, C-SPC.

(set-mark-command ARG)

Set the mark where point is, or jump to the mark. Setting the mark also alters the region, which is the text between point and mark; this is the closest equivalent in Emacs to what some editors call the “selection”.

With no prefix argument, set the mark at point, and push the old mark position on local mark ring. Also push the old mark on global mark ring, if the previous mark was set in another buffer.

When Transient Mark Mode is off, immediately repeating this command activates `transient-mark-mode’ temporarily.

With prefix argument (e.g., SPC u C-SPC), jump to the mark, and set the mark from position popped off the local mark ring (this does not affect the global mark ring). Use C-x C-@ to jump to a mark popped off the global mark ring (see `pop-global-mark’).

If `set-mark-command-repeat-pop’ is non-nil, repeating the C-SPC command with no prefix argument pops the next position off the local (or global) mark ring and jumps there.

With SPC u SPC u as prefix argument, unconditionally set mark where point is, even if `set-mark-command-repeat-pop’ is non-nil.

Novice Emacs Lisp programmers often try to use the mark for the wrong purposes. See the documentation of `set-mark’ for more information.

感觉是应该先被输入法切换截获的快捷键,不知怎么的被emacs处理掉了.关键是从快速启动栏启动才会有问题,而从终端启动emacs是Ok的.


#10

那就是被占了… Emacs 快捷键基本都是 Ctrl 开头的。 我 电脑全局至少都是 三个键开始的 Ctrl shift 还有四个的 Ctrl ALT shift的


#11

很奇怪哎 我系统的切换源快捷键是: Super + 空格 但是实际使用上是 Ctrl + SPC 才有效


#12

以前用英文的 Ubuntu 会输入不了中文, 后来换成中文的就好啦.


#13

键是不是被重定义了啊。我Mac 可以把左边的 caps lock 定义成 Ctrl…


#14

我来当个搬运工吧,我啥原理也不懂,但是以前在Ubuntu和Mint上各种折腾也解决过这个问题。 方法就是网上大家说的,export LC_CTYPE=zh_CN.UTF-8,实在不会的,可以设置语言为中文(也就相当于 export LANG=zh_CN.UTF-8),然后什么都是zh_CN.UTF-8了,就不用再担心环境变量的问题了。 另外,Ubuntu和Mint上在安装fcitx以后,在系统的输入法设置里面,可以看到fcitx项有红色的提示,大概意思是,建议安装fcitx一些附加的增强组件,这些安装上后,设置emacs输入中文成功的几率好像要大些。

最近换了Archlinux,搞了几天以后,今天终于也把emacs上调用fcitx输入法的问题解决了,我用的是搜狗输入法,关键的配置来自于这里: http://tech.memoryimprintstudio.com/issues-with-fcitx-sougou-for-chinese-input-in-emacs/

disable ./Xresources while it inclues: emacs*useXIM: false

In script file .xprofile, add following lines to support GTK+ and Qt modules Fcitx in Arch Linux. export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx

估计这个设置对其他linux系统也是很有用的,当然,export LC_CTYPE=zh_CN.UTF-8 也是必须的


#15

对了,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上也要注意一下


Emacs GUI下不能输入中文
#16

可能我没有说清楚,我使用的就是简体中文版UBUNTU


#17

中文ubuntu的话感觉占用快捷键的可能性比较大


#18

先用我说的方法看一下,emacs启动过后,emacs里运行locale,看看环境是什么样,语言是中文,也不代表LC_xxx都是中文,都是可以设置不一样的

输入法(fcitx?)config里,改一下输入法的快捷键试一下呢,比如改成Ctrl+shift


#19

晚上回家了才能测试,公司里的电脑没这问题。 到时会把测试结果贴上来


#20

测试结果如下: LANG=zh_CN.UTF-8 LANGUAGE=zh_CN:zh:en_US:en LC_CTYPE=zh_CN.UTF-8 LC_NUMERIC=zh_CN.UTF-8 LC_TIME=zh_CN.UTF-8 LC_COLLATE=“zh_CN.UTF-8” LC_MONETARY=zh_CN.UTF-8 LC_MESSAGES=“zh_CN.UTF-8” LC_PAPER=zh_CN.UTF-8 LC_NAME=zh_CN.UTF-8 LC_ADDRESS=zh_CN.UTF-8 LC_TELEPHONE=zh_CN.UTF-8 LC_MEASUREMENT=zh_CN.UTF-8 LC_IDENTIFICATION=zh_CN.UTF-8 LC_ALL=


#21
  1. 设置输入法的快捷键,看是否快捷键冲突
  2. 系统输入法设置,fcitx设置里,把提示建议安装的那些附加组件都装上,我记得是有的

In script file .xprofile, add following lines to support GTK+ and Qt modules Fcitx in Arch Linux. export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx

如果你的系统不是 .xprofile 这个配置文件,试试放到其他配置文件里,只要让它进环境变量就好


#22

这个帖子估计还会有人遇到类似问题, 我也回复下。
最简单的办法是替换emacs的启动文件,就是那个.desktop文件 在/usr/share/applications/下面。
直接改成Exec=env LC_CTYPE=zh_CN.UTF-8 emacs25 %F
加粗部分是新增的内容。
我看到帖子的内容也尝试去修改自己的profile或者是系统的locale,结果非常坑,也不知道是哪里设置的,家目录设置的始终不生效,系统级别也跟我得到的结果不一致,再加上我并不希望修改系统的设置,现在的办法看起来是最完美的了。本来也是emacs的一个bug。。


#23

这问题我也遇到过,貌似是 emacs 在 LC_CTYPE 为 en 的情况下无法打开 fcitx ,据说是一个很老的 bug 了,后来直接换 rime 输入法了。

另一个解决方法, 以 root 身份运行 dpkg-reconfigure locales,将 locale 配置为 zh_CN.UTF-8.


#24

是 ibus-rime ?Rime 本身沒有前端,ibus 是官方支持的前端界面,但 fcitx-rime 更流行。


#25

多谢!使用export LC_CTYPE=zh_CN.UTF-8之后,就可以在ubuntu中使用搜狗输入法了。


#26

tx,在 /etc/profile 下配置