gentoo/dwm上emacs编码显示问题

大家好, 我是一个刚学会在gentoo/dwm上使用emacs的用户,现在主要用emacs编辑一些latex文档和cpp的gbd调试,尤其是gdb的多窗口模式非常好用。不过美中不足的是我的emacs编辑器始终不能编码我系统默认utf-8,我输入的汉字编码都会以两个字节四角字符的形式出现,如用拼音输入的“张”会显示为5f20。我已经尝试了一些浅显的配置方案,但都没能解决我的问题,在此寻求各位的建议,非常感谢。 同时,终于打开了emacs-china.org的主页,加入社区让我非常高兴。

2 个赞

你是说中文会变成乱码吗?我没记错的话linux下面emacs就是默认utf-8的,中文应该不会是乱码。建议搜索下论坛里面utf8相关设置试试,不过似乎没有一个百分之百保证全都utf8的办法,如果实在不行,文件第一行加上

;;;  -*- coding: utf-8-unix -*-

谢谢回复,我回去查找utf-8相关答案。请问这个魔法注释是用在什么地方,init.el还是我编辑的cpp文件,加入注释以后需要编译吗?

这是我尝试过的配置策略,我看了下论坛上的相关问题,比较好的解决方案都是针对windows平台的,以下是我尝试过的策略, ;(set-language-environment 'Chinese-GB) ;;(set-language-environment “UTF-8”) ;(set-locale-environment “UTF-8”) ;; Setting English Font ;(set-face-attribute ;'default nil :font “Monaco 12”) ;; Chinese Font 配制中文字体 ;(dolist (charset '(kana han symbol cjk-misc bopomofo)) ; (set-fontset-font (frame-parameter nil 'font) ; charset ; (font-spec :family “Kaiti SC” :size 14))) ;; Note: you can chang “Kaiti SC” to “Microsoft YaHei” or other fonts (prefer-coding-system 'utf-8-unix) (set-language-environment “UTF-8”) (set-default-coding-systems 'utf-8-unix) (set-terminal-coding-system 'utf-8-unix) (set-keyboard-coding-system 'utf-8-unix) (setq locale-coding-system 'utf-8-unix) ;; Treat clipboard input as UTF-8 string first; compound text next, etc. (when (display-graphic-p) (setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING)))

我测试了revert-buffer-file-coding-system,编码对应的字节变量是可以正确变换的,但是没有相应的中文字体被输出,可能是字体映射的问题。

其它编辑器里输入中文有问题吗?如果没有问题,那可能是Emacs有些use flag没开,可以检查下xft/harfbuzz这俩(现在应该是用harfbuzz吧)。

谢谢回答,我用use="xft"从新emerge过,没有效果。现在估计还是gtk的问题。
app-editors/emacs-27.2-r5 (gtk ? x11-libs/gtk+:3)
app-editors/emacs-28.1 (gtk ? x11-libs/gtk+:3)

A related topic: emacs font not available This is a symptom of something overriding Emacs’ default font backend. If the result of

M-: (frame-parameter nil 'font-backend)

is something like (x), then that’s what happening, since it should be something like (ftcrhb x) for recent versions of Emacs under X11.

The cause is usually an old FontBackend specification in either your personal or system xresources file, or a site-lisp file setting it. If

emacs --no-x-resources

fixes the issue, then it’s a FontBackend specification (often in “~/.Xdefaults” or “~/.Xresources”). If that doesn’t fix it, but running without any config at all, ie:

emacs -Q

fixes it instead, then it’s a lisp file loaded by Emacs that’s at fault.

虽然已经解决了但是我还是补充下吧,原样放在文件第一行就行,其实是file local variable的一种写法,还有一种是放在文件末尾,你可以搜下相关文档。

1 个赞

谢谢您的建议,我试过了的,没有变化。我的问题应该是slot的emacs无法加载fonts目录。