systemd 启动 emacs daemon 的时候不会读取环境变量,所以需要额外指定。
朋友,能否把这个bug 的mailing-list链接给我? 我想去吹吹风 …
喷了,我最近折腾了一下字体后也不行了。。。
MODULE
的设置我放/etc/environment
里的,LANG
应该靠的是lightdm。
可能是字体问题:
> xlsfonts
-misc-fixed-medium-r-semicondensed--0-0-75-75-c-0-iso8859-1
-misc-fixed-medium-r-semicondensed--13-100-100-100-c-60-iso8859-1
-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
6x13
cursor
fixed
添加了路径,xlsfonts
确实可以列出来了,不过还是不行。而且不设置这个describe-char
也是能看到字体的。。。
哈哈哈网上到处都提了这个bug但我真没找过这个mail list,不好意思啦
多谢,这个问题困扰我太久了,一直懒得读systemd的manual去解决,原来它的env得另设啊
原因
据说如果你的LC_CTYPE
是英语,则在Emacs中无法使用Fcitx输入法,这是Emacs中的一个老问题。
解决
编辑/etc/default/locale
LC_CTYPE="zh_CN.UTF-8"
参考
此法对ibus也有效,今天在一台使用ibus的机器上,通过在service里添加XMODIFIERS和GTK_IM_MODULE,成功使得ibus得以激活,当然,变量值改成了ibus。不这样修改的话,ibus只能在直接启动emacs时使用,使用C/S模式的时候就激活不了,这么改动之后就一切都正常了。十分感谢。
安装 terminus-font 字体
如果使用的是 archlinux i3wm,这种方式可以解决:
bindsym $mod+Ctrl+x exec GTK_IM_MODULE=fcitx GTK_IM_MODULE=fcitx XMODIFIERS=@im=fcitx LANG=zh_CN.UTF-8 LC_CTYPE=zh_CN.UTF-8 emacs
我也遇到了同样的问题。
最后发现是因为没有enable zh_CN.UTF-8的locale,
在/etc/locale里面开启中文,然后locale-gen,之后就好了。
2022年了搜了一堆网站,最终发现解决这个问题有好几个细节很多热门的答案都没有讲清楚,我的系统是Debian, 首先你要确定你有zh_CN.utf8这个locale,那些答案的设定才有意义
locale -a | grep -i zh_CN
如果没有,下面的命令安装
sudo apt install -y locales
dpkg-reconfigure locales
弹出的图形界面直接选 all, 装完之后用之前的命令验证一下能找到 zh_CN.utf8 了 下面的命令行启动支持中文
LC_CTYPE="zh_CN.utf8" emacs
为了避免麻烦,每次都要写这堆前缀,可以改 ~/.bashrc 最后面加上
export LC_CTYPE="zh_CN.utf8"
改完重新加载一次生效
source ~/.bashrc
这个时候验证一下直接输入 emacs 命令启动,也能输入中文了
对于桌面图标,需要改一下 /usr/share/applications/emacs.desktop
文件
本来呢,直接把其中的 TryExec 和 Exec 前面都加上上面的那段 LC_CTYPE="zh_CN.utf8"
代码前缀就行了,但是因为 desktop 文件本身会识别等号,所以这段代码含等号就不能这样加了,先在/usr/bin
创建个新的命令
sudo touch /usr/bin/my_emacs
sudo chmod +rwx my_emacs
内部内容如下
#!/bin/bash
LC_CTYPE="zh_CN.utf8" emacs
然后修改 /usr/share/applications/emacs.desktop 中的 TryExec 和 Exec 为
TryExec=/usr/bin/my_emacs
Exec=/usr/bin/my_emacs
这样点击图标启动就也能支持中文了。 更多 .desktop 文件的细节,google linux freedesktop desktop file entry key
大家好,我的情况也很诡异。操作系统是FreeBSD 14.0 使用的是KDE Plasma 5桌面环境,fctix5在其它程序上基本正常,目前没有发现不能输入中文的情况。
环境变量在.xinitrc文件里面配置的
export XIM=fcitx
export XIM_PROGRAM=fcitx
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
export XMODIFIERS=“@im=fcitx”
export SDL_IM_MODULE=fcitx
exec ck-launch-session dbus-launch --exit-with-session /usr/local/bin/startplasma-x11
然后进emacs-gui(用freebsd的 pkg install emacs命令安装的29.3版本 )之后不能输入中文,在stratch的buffer里面eval
(getenv “XIM”)
(getenv “XIM_PROGAM”)
…
(getenv “SDL_IM_MODULE”)
等等都和我预设在.xinitrc文件中的值一致,证明emacs-gui捕获了这些环境变量
(getenv “LC_CTYPE”)
的结果是 zh_CN.UTF-8, 这也表示emacs-gui正确的知道这个变量
但是中文输入法就是不起作用
我在终端里面
LC_CTYPE=zh_CN.UTF-8 emacs -Q
测试结果也不能使用中文输入
然后在终端里采用
emacs -nw 使用无GUI模式时则中文输入正常。
请问大家如何解决。
这些字体我都装了的,虽然和ARCH上的包名字不同
pkg version | grep misc
输出结果为
font-arabic-misc-1.0.3_4 =
font-cursor-misc-1.0.3_4 =
font-daewoo-misc-1.0.3_4 =
font-dec-misc-1.0.3_4 =
font-isas-misc-1.0.3_4 =
font-jis-misc-1.0.3_4 =
font-micro-misc-1.0.3_4 =
font-misc-cyrillic-1.0.3_4 =
font-misc-ethiopic-1.0.4 =
font-misc-meltho-1.0.3_5 =
font-misc-misc-1.1.2_4 =
font-mutt-misc-1.0.3_4 =
font-schumacher-misc-1.1.2_4 =
font-sony-misc-1.0.3_4 =
font-sun-misc-1.0.3_4 =
xorg-fonts-miscbitmaps-7.7 =
搞定了,感谢前面提的字体问题,我想既然字体会影响这个,那么是不是因为freebsd的默认二进制发行版的编译选项没支持这个
于是我到/usr/port里面
make config
然后在编译选项里面取消了CAIRO支持(这个和XFT只能二选一)
确认以下编译选项被选中
OTF
XFT
XIM
不要选PGTK
然后回车确认
make deinstall emacs
make
make install
然后在KDE里面调用emacs的GUI版,正常了.
感谢回复.多谢