Jos*_*osh 5 shell emacs shell-script
我想采购一个shell脚本,改变在Emacs我的环境变量。也就是说,我希望 shell 脚本更改 Emacs 运行的环境,并且我希望在正在运行的 Emacs 会话中执行此操作。
换句话说:
zshzsh从 Emacs 中获取一个脚本来更改环境变量,例如LD_LIBRARY_PATH这是试图规避我在此处描述的问题,我需要设置 LD_LIBRARY_PATH运行 Emacs,但我需要取消设置以运行特定的 Python 发行版 ( Anaconda )。
具体来说,我想使用需要访问此 Python 发行版的 Emacs 包 ( emacs-jedi ),但目前我需要先取消设置 LD_LIBRARY_PATH才能启动 Emacs,所以我需要稍后设置它,以便我可以emacs-jedi在 Emacs 中使用。
这是可能吗?
我不认为这是可能的,因为每次调用子 shell 来获取脚本时,您都会从启动 emacs 应用程序的原始进程中调用子进程。
环境变量的导出是一种单向方式,只有父进程可以向任何子进程提供变量,但子进程不能操纵父进程的环境。
我正在使用vim,但同样应该适用于emacs. 源示例文件。
$ more ~/vars.bash
export VAR=somevalue
Run Code Online (Sandbox Code Playgroud)
初始父环境$VAR未设置
$ echo $VAR
$
Run Code Online (Sandbox Code Playgroud)发射vim。然后调用子 shell 来获取上述文件 ( :sh)。
# check variable
$ echo $VAR
$
# source and re-check
$ source ~/vars.bash
$ echo $VAR
somevalue
Run Code Online (Sandbox Code Playgroud)退出子shell,返回vim。然后调用另一个子shell ( :sh)。
$ exit
... back in vim, do another `:sh` ...
# check variable
$ echo $VAR
$
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1241 次 |
| 最近记录: |