Emacs有一套自身的環(huán)境變量,可以通過(guò)getenv
獲取。很多插件會(huì)訪問(wèn)Emacs的環(huán)境變量,然后進(jìn)行后續(xù)操作缚陷。
例:獲取PATH
變量
M-x getenv --> PATH
可以通過(guò)setenv
來(lái)設(shè)置一個(gè)Emacs環(huán)境變量,比如將FOO
設(shè)置為BAR
M-x setenv --> FOO --> BAR
值得注意的是Emacs的環(huán)境變量不等同于Shell的環(huán)境變量往核,換句話說(shuō)箫爷,假設(shè)在shell的PATH里配置了某些命令,發(fā)現(xiàn)在Emacs里找不到聂儒,很大程度是Emacs和Shell的PATH變量不一樣造成的虎锚。(特別是默認(rèn)使用的shell不是bash)
很多時(shí)候我們希望在SHELL里配置好環(huán)境變量,然后在Emacs里直接使用SHELL配好的薄货,此時(shí)可以通過(guò)插件exec-path-from-shell
來(lái)解決翁都。
例:使用shell的PATH變量代替Emacs的PATH變量
(exec-path-from-shell-initialize)
也可以將指定shell變量拷貝到Emacs里,比如go的GOPATH
和GOROOT
(exec-path-from-shell-copy-env "GOPATH")
(exec-path-from-shell-copy-env "GOROOT")