Win7 で gVim のネイティブ コンパイルを実行すると、vimrc に次のように記述されます。
if has ("win32")
let $TMP="C:/tmp"
setlocal equalprg=tidy\ --output-xhtml\ y\ -utf8\ --wrap-attributes\ 1\ --vertical-space\ 1\ --indent\ auto\ --wrap\ 0\ --show-body-only\ auto\ --preserve-entities\ 1\ -q\ -f\ shellpipe=2>
endif
これにより、一時ファイルが作成されます。ただし、コマンドを実行すると、次のように表示されます。
shell returned 1
E485: Can't read file C:\tmp\VIoC935.tmp
私の vimrc スニペットからわかるように、ネイティブ Windows E485 エラーに対する一般的な推奨事項は、私が持っている tmp 変数を設定することです。let ステートメントを削除すると、同様の結果が得られます。
shell returned 1
E485: Can't read file C:\Users\ksk\AppData\Local\Temp\VIfFA01.tmp
両方の場合において; 両方のディレクトリが存在し、gVim はそれらの場所にファイルを書き込むことができます。
:w C:\Users\ksk\AppData\Local\Temp\VIfFA01.tmp
現在のバッファにエラーなしでこのファイルを書き込みます。
興味深いことに、これを書いているときに、新しいバッファーを作成して元のバッファーを削除すると、equalprg 関数がエラーなしで実行されることがわかりました (vimrc の「let」ステートメントの有無にかかわらず)。