【问题标题】:Emacs can not activate fcitxEmacs 无法激活 fcitx
【发布时间】:2017-02-19 07:04:11
【问题描述】:

我可以在所有其他程序中正常使用 fcitx。但是我不能在 Emacs 中不使用 fcitx,这意味着我不能切换到其他输入法,例如中文输入法。我尝试了很多,谷歌搜索了很多都没有找到解决方案。这让我很困惑!

我使用emacs -q 来启动emacs。

你能帮帮我吗?提前致谢!

  1. Emacs 版本:25.1.1
  2. fcitx 版本:4.2.8.5
  3. 操作系统:Slackware 14.2

uname -a 输出:

Linux Planet 4.4.38 #2 SMP Sun Dec 11 16:18:36 CST 2016 x86_64 Intel(R) Core(TM) i3-2330M CPU @ 2.20GHz GenuineIntel GNU/Linux

fcitx-diagnose 输出:fcitx-diagnose

~/.xprofile~/.profile 都包含以下内容:

export XMODIFIERS=@im=fcitx
export LC_CTYPE=zh_CN.UTF-8
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx

【问题讨论】:

  • 请提供问题的详细信息,而不是仅仅转储您的配置。例如。向我们展示你做了什么,你期望发生什么,以及发生了什么。
  • 我期望发生的事情:我可以在 Emacs 中使用C-M SPACE 切换到中文输入法。现在,我可以在所有其他应用程序中使用此快捷方式在中文输入法和英文之间切换。但是在 Emacs 中我不能。我已经测试了很多,例如在Fcitx配置中更改切换方法的快捷方式,将~/.xprofile~/.profile更改为fcitx wiki所说的。它不起作用。
  • 如何启动 Emacs?你可以试试M-: (getenv "XMODIFIERS") RET 以确保你的 Emacs 确实获得了你放入 ~/.profile 的 env-vars 设置(从未听说过~/.xprofile)。
  • @Stefan 谢谢!正如我在问题中所说,我使用 emacs -q 启动 Emacs。我使用 Emacs 的 GUI 版本。 M-: (getenv "XMODIFIERS") RET 返回 @im=fcitx 与我在 ~/.profile 中设置的值相同。
  • 那我建议你M-x report-emacs-bug RET,这样 Emacs 维护人员可以看看:这听起来像一个 bug。

标签: emacs slackware fcitx


【解决方案1】:

这些是对我有用的几个步骤:

  1. 编辑/etc/locale.gen 文件,取消注释zh_CN.UTF-8 UTF-8 行。
  2. 运行sudo locale-gen
  3. 确保安装了正确的字体。我用了manjaro,所以我安装了 xorg-fonts-misc-otb 来自AUR,不再是xorg-fonts-misc 根据https://wiki.archlinux.org/index.php/Fcitx#Emacs 提供所需的字体。注意字体安装后需要重启。
  4. 使用以下命令启动 emacs:LC_CTYPE=zh_CN.UTF-8 XMODIFIERS=@im=fcitx emacs。参考:https://fcitx-im.or/wiki/Input_method_related_environment_variables

【讨论】:

    【解决方案2】:

    试试这个视频:https://www.youtube.com/watch?v=3hwUnhdKWiI Jekor 已经解释了如何通过其他输入法输入字符。

    【讨论】:

    • 感谢您的回答!是的,这是一种解决方法。但是和fcitx输入法还是有很大区别的,Emacs内置的中文输入法比如fcitx可以比Emacs内置推荐更多有用的词或者短句。
    【解决方案3】:

    我也遇到过类似的情况。该问题与语言环境设置有关(在您的情况下为LC_CTIME)。

    就我而言,当我将 Emacs 的 LC_TIME 设置为 en 时,fcitx 停止工作。 Emacs 守护进程抱怨:Locale not supported by C library. Using the fallback 'C' locale. 我不确定问题是否是由无效/不可用的区域设置或将区域设置设置为默认值以外的任何设置引起的。

    无论哪种方式,删除您的配置文件中的 LC_CTIME 行应该会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 2017-11-13
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      相关资源
      最近更新 更多