У меня есть скрипт Vim, который вызывает скрипт внешней оболочки и считывает вывод в текущий буфер.Он отлично работает в системах Unix.Я пытаюсь сделать скрипт независимым от ОС, поэтому хочу, чтобы он работал и для пользователей Windows.Вот соответствующая строка из скрипта:
:exe ":0r !$HOME/bin/shell_script"
Согласно документам Vim, $HOME
должно хорошо переводиться и для пользователей Windows.При использовании gvim на Win XP в командном режиме выполнение
:echo $HOME
действительно приводит к появлению «C: \ Documents and Settings \ my_user».
Однако мой сценарий Vim (с учетом обратной косой черты) завершается неудачнона компьютере Windows с сообщением в окне DOS cmd.exe о том, что
$ HOME \ bin \ shell_script "не найдено.
Другими словами, Vim отображается нечтобы расширить значение $HOME
перед передачей его в cmd.exe.
Я также не могу использовать %APPDATA%
, потому что Vim интерпретирует %
как текущий файл и предварительно / добавляет имя файла кAPPDATA
. Странно, что Vim расширяет , расширяет %
, но не расширяет $HOME
.
Как мне правильно развернуть $HOME
? Это потому, что я используюexe
в скрипте vim?