Emacs有一套自身的环境变量,可以通过getenv
获取。很多插件会访问Emacs的环境变量,然后进行后续操作。
例:获取PATH
变量
M-x getenv --> PATH
可以通过setenv
来设置一个Emacs环境变量,比如将FOO
设置为BAR
M-x setenv --> FOO --> BAR
值得注意的是Emacs的环境变量不等同于Shell的环境变量,换句话说,假设在shell的PATH里配置了某些命令,发现在Emacs里找不到,很大程度是Emacs和Shell的PATH变量不一样造成的。(特别是默认使用的shell不是bash)
很多时候我们希望在SHELL里配置好环境变量,然后在Emacs里直接使用SHELL配好的,此时可以通过插件exec-path-from-shell
来解决。
例:使用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")