我的编码设置是:
(when (fboundp 'set-charset-priority)
(set-charset-priority 'unicode))
(prefer-coding-system 'utf-8)
(set-language-environment 'utf-8)
(set-locale-environment "UTF-8")
(set-keyboard-coding-system 'utf-8)
(set-clipboard-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-selection-coding-system 'utf-8)
(modify-coding-system-alist 'process "*" 'utf-8)
(set-file-name-coding-system 'utf-8)
在linux下没问题。最近没办法必须在win下面。出现各种问题。泪崩。
麻烦高人给指点下
建议你Windows 开启Unicode支持,这样很多问题都解决了。
zhscn
4
(when (eq system-type 'windows-nt)
(setq locale-coding-system 'gb18030)
(setq w32-unicode-filenames 'nil)
(setq file-name-coding-system 'gb18030))
(unless (eq system-type 'windows-nt)
(set-clipboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8))
我之前在Windows上的设置。应该是没问题的。
你这个状态栏上的是不是少了什么字体?不知道你用了什么配置?Spacemacs?
gnu emacs 自己配的。modeline用的是doom modeline。
字体我用的是"Source Code Pro“ win也安装了。
另外这个乱码的地方是时间。应该是时间使用了中文。modeline识别不了。
在哪里单独修改时间的编码格式?
这个时间的问题,我以前用Purcell的配置在Org-mode遇到过,很头疼。最后是通过直接把Windows的时间格式改成英文格式解决的,我现在Windows也一直用英文的时间格式了。你可以试试
谢谢。我也设置成了英文。问题解决。
按照楼上的兄弟方案时间是显示正常了。org里面的中文又乱了。哎,win真难用
所以还是设置英文简单点,Windows下用Emacs 要折腾的东西确实比较多,慢慢来。
我现在基本大部分时间都是在Windows10 上用,还可以。就是Magit稍微慢点,但能接受。多交流
2 个赞
zhscn
11
就是那两个 gb18030 起作用的。
org乱应该是文件编码的问题。iconv转一下就行了。
我关于编码的完整设置
(when (fboundp 'set-charset-priority)
(set-charset-priority 'unicode))
(prefer-coding-system 'utf-8-unix)
(modify-coding-system-alist 'process "*" 'utf-8-unix)
(set-buffer-file-coding-system 'utf-8-unix)
(set-file-name-coding-system 'utf-8-unix)
(set-default-coding-systems 'utf-8-unix)
(set-keyboard-coding-system 'utf-8-unix)
(set-terminal-coding-system 'utf-8-unix)
(set-language-environment "UTF-8")
(setq locale-coding-system 'utf-8-unix)
(setq default-process-coding-system '(utf-8-unix . utf-8-unix))
(when (eq system-type 'windows-nt)
; (setq abbreviated-home-dir "\\`'")
(setq locale-coding-system 'gb18030)
(setq w32-unicode-filenames 'nil)
(setq file-name-coding-system 'gb18030)
(setq default-directory "d:/"))
(unless (eq system-type 'windows-nt)
(set-clipboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8))
为啥都是LF
之前的换行方式都是随系统默认的,Windows上是CRLF,Linux就是LF。但是后来在Windows写C时碰见一个自动转换被坑了一下,见 fread | Microsoft Docs。后来就干脆全部统一LF了。
2 个赞
SPQR
12
mark了,不过看doc string 似乎应该是 (set-language-environment “UTF-8”) ?
WJT
14
昨晚因为这个问题搞到很晚才睡觉,也是醉了哈。
因为其他原因,打开了win的beta UTF-8功能,然后发现emacs字体全乱了。
然后添加了LANG=utf-8,字体恢复了。但是开始纠结modeline的乱码。。
最后试了半天无果,还是修改了日期格式到英文 意外的折腾哈
Emacs 对中文确实不友好,好在通过社区各位大神的努力,大部分问题都解决了。