2012-02-06 16 views
2

私は、次を使用して、エクスプローラで現在のファイルを開くにはvimの中でコマンドを作成しました:
command! E silent !start explorer /select,"%:p"防止用のvim:P

私は_vimrcファイルを開こうとするために、このコマンドを使用する場合( C:\ Program Files(x86)\ Vim \ _vimrcにあります)、間違ったディレクトリが開きます。 C:\ Program Files \(x86 \)\ Vim \ _vimrcに移動しようとするExplorerを起動すると、%:pは "x86"の前後にかっこをエスケープしているようです。

私が奇妙な部分vimで次のコマンドを入力すると、
:echo expand("%:p")
括弧をエスケープしないでパスを出力します。

また、コマンドでパスをハードコーディングしようとすると、正しく開きます。これは、私がそれを使用するときにvimを解決するいくつかの変わった奇妙なものだと信じさせてくれます。コマンド。

%:pが!を使用するときにかっこをエスケープしないようにする方法を知っている人はいませんか?コマンド?私は%:pと:!の両方のヘルプを読みましたが、これに対処するための何かを見つけることができませんでした。

答えて

1

私はそうする方法があるかどうかを知っているが、!...%いずれかを使用していないそれは(少なくともPOSIXシステムでは、私の知る限り、それは" Windows上でとても不可能ではありませんされ、スクリプトは悪い考えですファイル名には禁止されています)。

command! E :execute 'silent !start explorer /select,'.shellescape(expand('%:p'), 1) 
+0

これは私が探していたまさにです:ケースでは、シェルコマンドの使用:execute + shellescape() + expand()にファイル名を渡す必要があります。私は何とかコマンドの中でexpand()を使って考えましたが、それを動作させる方法を理解できませんでした。なんらかの理由で私は使用することはありませんでした。 – Pak