我有一个Vim脚本调用外部shell脚本并将输出读入当前缓冲区。它在Unix系统中工作正常。我试图让脚本与操作系统无关,所以我希望它也可以用于Windows用户。下面是从脚本中的相关行:如何在Vim脚本中使用Windows环境变量?
:exe ":0r !$HOME/bin/shell_script"
根据Vim的文档,$HOME
应该为Windows用户翻译也没关系。在Win XP上以命令模式使用gvim,做
:echo $HOME
确实产生“C:\ Documents and Settings \ my_user”。
然而,我的Vim脚本(调整反斜杠)在Windows机器上失败,并在DOS窗口的CMD.EXE说
$ HOME \ BIN \的shell_script”未找到的消息。
换句话说,Vim中似乎没有将它传递给cmd.exe的前扩大$HOME
值。
我不能使用%APPDATA%
要么因为Vim解释%
作为真正水流nt文件并预先/附加文件名到APPDATA
。奇怪的是Vim 确实扩大%
但不扩大$HOME
。如何获得$HOME
正确扩展?是否因为我在vim脚本中使用exe
?
这个问题不是关于(后退)斜线。这里的问题是shell根本不理解'$ HOME' – doubleDown 2013-08-14 19:38:00