【发布时间】:2018-02-14 02:01:45
【问题描述】:
当我启动 emacs 时设置的 PATH 似乎可以正常工作,但是如果我在 emacs shell 缓冲区中更改 PATH,我似乎无法让 Emacs 重新考虑它的可能完成列表。
有没有办法重新初始化 Emacs 的完成视图?
在非 emacs shell 中,一切都按预期运行,偶尔会抛出 hash -r。
【问题讨论】:
当我启动 emacs 时设置的 PATH 似乎可以正常工作,但是如果我在 emacs shell 缓冲区中更改 PATH,我似乎无法让 Emacs 重新考虑它的可能完成列表。
有没有办法重新初始化 Emacs 的完成视图?
在非 emacs shell 中,一切都按预期运行,偶尔会抛出 hash -r。
【问题讨论】:
假设您使用的是完成点,有一个变量exec-path 维护了一个搜索可执行文件的目录列表。 shell-command-completion,默认情况下是 shell-dynamic-complete-functions 的一部分,会搜索这些位置。
您可以使用新位置更新该变量以搜索可执行文件,例如。 (push "<new-directory>" exec-path).
【讨论】:
env.el。将(getenv "PATH") 的结果除以path-separator 并进行任何操作也相当简单。还有github.com/purcell/exec-path-from-shell,虽然我没用过,因为我不在Mac上