最近刚刚重装了 Arch linux. (2020-08), 再一次遇到了 Emacs 中文输入的问题.
然后, 就像以前一样, 装了一堆包, 突然就好了, 但是到底 Emacs 依赖于那些包才可以确保中文输入无问题呢? 刚刚又重装了一遍, 说一下测试的结果.
前提
基本的 UI 界面还是要有的, 这里以 gnome 为例.
$: pacstrap /mnt linux linux-headers linux-firmware base base-devel nano
然后 arch-chroot, 安装 gnome 和 emacs
$: pacman -S gnome gnome-extra budgie-desktop networkmanager network-manager-applet konsole fcitx-im fcitx-sunpinyin fcitx-configtool emacs
使用 gdm 作为 display manager.
$: systemctl enable NetworkManager
$: systemctl enable gdm
重启后, 添加环境变量到 ~/.profile
export LANG=en_US.UTF-8
export LC_CTYPE=zh_CN.UTF-8
export LANGUAGE=en_US:en
export XMODIFIERS="@im=fcitx"
export XIM_PROGRAM=fcitx
export XIM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export QT4_IM_MODULE=fcitx
export XIM_ARGS="-d"
# 这个环境变量设定允许 terminology 使用 fcitx
export ECORE_IMF_MODULE="xim"
修复 Emacs 中文输入.
如果所有以上步骤正确, 现在你应该可以在 GTK 应用程序(例如 Firefox) 和 QT(例如: konsole) 中输入中文了.
但是很遗憾, Emacs 不行, 当你按下默认的 Ctrl + Space 快捷键时, 你只会看到 minibuffer
提示: mark is activated ...
修复 Emacs 中文输入,你需要再安装两个包, 然后重启.
$: pacman -S ttf-dejavu xorg-mkfontscale