bne*_*eil 10 unix zsh environment-variables
我试图将我的 $EDITOR 变量设置为没有窗口的 emacs,因此调用它的命令是emacs -nw
. 但是,如果我这样设置:
export EDITOR="/Applications/Emacs.app/Contents/MacOS/Emacs -nw"
我收到以下错误
zsh: no such file or directory: /Applications/Emacs.app/Contents/MacOS/Emacs -n
我相信这不起作用,因为 shell 会尝试打开一个二进制文件,文件名中包含空格,所以Emacs -nw
,而不是打开Emacs
,然后-nw
作为选项传递。
如何制作$EDITOR
一个小的(可执行的)脚本,例如在~/bin/EDITOR
?
#!/bin/sh
/Applications/Emacs.app/Contents/MacOS/Emacs -nw -- "$@"
Run Code Online (Sandbox Code Playgroud)
然后,只需添加到您的 shell 配置中:
export EDITOR=~/bin/EDITOR
Run Code Online (Sandbox Code Playgroud)
现在,EDITOR
将使用适当的参数调用脚本,在$@
.
如此处所述:zsh: Command not found (for $EDITOR) , zsh 将扩展变量视为单个单词(其中包含空格字符)。
可能的解决方案是:
在 bash 中运行,它可以正确扩展空间
在使用参数扩展的“=”修改器:看扩展中zsh
的文档,并查找“$ {=规范}”
在调用 $EDITOR 时使用 eval ,如下所示:
eval $EDITOR file
归档时间: |
|
查看次数: |
2206 次 |
最近记录: |