我有一個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