exec-path-from-shell 造成 Emacs 启动缓慢

最近在 Arch Linux 上使用 Emacs 发现启动很慢,原来是 exec-path-from-shell这个包造成的,提示下面的信息:

Warning: exec-path-from-shell execution took 15216ms. See the README for tips on reducing this.

去官网看了 Readme,也没找到解决的方法。 在系统终端中显示的PATH 路径如下,是完整的:

 ~ echo $PATH
/home/aqua/.cabal/bin:/home/aqua/.ghcup/bin:/home/aqua/.cargo/bin:/home/aqua/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/home/aqua/.dotnet/tools:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

启动后 Emacs 中也继承了一样的路径。

目前的 PATH 设置都是放在 .zshrc 中,也尝试过放到 .zshenv 中,都没法解决。 请问有人遇到过类似的问题吗?

.zshrc 中关于路径的设置如下:

export PATH=$HOME/bin:/usr/local/bin:$PATH
# Rust
export PATH=/home/aqua/.cargo/bin:$PATH
# ghcup
[ -f "/home/aqua/.ghcup/env" ] && source "/home/aqua/.ghcup/env" # ghcup-env
1 个赞

不清楚,没有用这个包(Linux 不需要?)

我需要环境变量都是直接通过 setenv 设置的,比如 (setenv "FZF_DEFAULT_COMMAND" "fd --type file"), 或许你可以试试?

Linux 和 Macs 都需要,不然 eshell 都继承不了 .zshrc 或者 .zshenv 设置的路径。 我没采用在 Emacs 中设置路径,主要是为了配置方便,不需要在配置里对不同机器进行适配。

啊,找到问题了。是因为最近玩 xmonad 的时候设置了个 .zprofile 。 删除掉这个文件就好了。

我使用的是这个方案,在macOS上面运行良好,你可以在Linux上面试试

1 个赞

GitHub - manateelazycat/cache-path-from-shell: Provide a chache mechanism make sure exec-path-from-shell just execute once. ?

:smile:,多谢。之前也用你的这个包。

现在问题找到了,是因为用 .zprofile 的问题。