emacs 无法执所有图形界面程序

之前一直正常, 不知道什么原因,发现我的spacemacs 无法执行所有带图形界面的命令.

比如: ‘M-x: shell’ 然后执行 ‘evince’, 这是ubuntu里面的一个pdf阅读器, 显示错误:

`Invalid MIT-MAGIC-COOKIE-1 keyUnable to init server: Could not connect: Connection refuse`

emacs -q 一切正常

在ubuntu terminal 中执行一切正常

google 了一通似乎没有直接跟emacs相关的, 这个MIT-MAGIC-COOKIE-1 根server有关, 奇怪为什么我的spacemacs会跟这个有关呢???

系统信息: GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.20, cairo version 1.16.0) of 2020-09-20

ubuntu20.04

spacemacs develop

emacs 和 emacs -nw 里分别看下 initial-environment 的值。

哦,好像是 shell 里执行的? 那可以看下 env 的输出对比下。

谢谢, 这两个输出差别太多了, emacs里面的要少很多, 这两个需要一样吗? 在那里设置呢?

我指你 emacs 两种运行方式里对比 两种 initial-environment, 以及两种 env 输出。

大概带 X、带 HOME、带 DISPLAY、带 SSH 字样的环境变量可疑。

emacs -q, emacs -nw 两种环境变量很多, 这两种方式运行都不出现问题, emacs方式环境变量很少,也是有问题的, 所以应该是我的配置文件里面影响到了环境变量???

终于找到问题原因了, 在.spacemacs.env 文件中有一个变量 DISPLAY=0 把它修改为1 就没问题了, 或者直接把.spacemacs.env 删除, 重启emacs 会生产新的.env文件.

不过是谁修改了这个值呢? 我不记得改过它,奇怪

这个创建 .spacemacs.env 时根据当前变量保存的。类似问题遇到过一次,macOS 上 DISPLAY 的內容更复杂,不是固定设置成 1 就行的。讲真我觉得 env 这功能加了没啥用,就在 .spacemacs 里关了

可能是我之前重装了系统, 保留了旧的home目录, .spacemacs.d在home目录也保留了下来, 但是系统环境可能不一样, 但是这个.env文件可能没有更新, maybe…