当我在 Emacs 中打开 jar 文件时,它会打开一个带有空表的缓冲区:
M ... Filename
- ----- ---------------
- ----- ---------------
如果我按 g,它会被重新读取,并且我会看到存档的实际目录:
M Mode Size Date&time Filename
- ---------- ----- -------------------- ----------------
-rw-rw-rw- 121 14-Feb-2018 16:36:20 META-INF/MANIFEST.MF
-rw-rw-rw- 2026 14-Feb-2018 16:36:20 META-INF/maven/aero/aero/pom.xml
-rw-rw-rw- 440 14-Feb-2018 16:36:20 META-INF/leiningen/aero/aero/project.clj
-rw-rw-rw- 14152 14-Feb-2018 16:36:20 META-INF/leiningen/aero/aero/README.md
-rw-rw-rw- 1075 14-Feb-2018 16:36:20 META-INF/leiningen/aero/aero/LICENSE
这种奇怪的行为(迫使我按 g)破坏了一些管道,例如打开位于 Jar 存档中的源文件。到目前为止一切都很好,我没有注意到我是如何打破这个的。我不记得更改过一些与档案相关的设置。
PS:2022年5月11日的GNU Emacs 28.1(版本1,aarch64-apple-darwin21.1.0,NS appkit-2113.00版本12.0.1(版本21A559))
罪魁祸首是我的配置中的那一行:
(setq-default coding-system-for-read 'utf-8)
一旦我将其注释掉,奇怪的行为就消失了。