当使用%:p时,避免vim逃避偏执

我在vim中创build了一个命令,用以下命令在资源pipe理器中打开当前文件:
command! E silent !start explorer /select,"%:p"

如果我使用这个命令尝试打开我的_vimrc文件(位于:C:\ Program Files(x86)\ Vim \ _vimrc),它会打开错误的目录。 看来,%:p是当它启动资源pipe理器导致它试图导航到C:\ Program Files \(x86 \)\ Vim \ _vimrc时绕过“x86”括号

我觉得奇怪的部分是,如果在VIM中我input以下命令:
:echo expand("%:p")
它将打印path而不会溢出括号。

此外,如果我努力编码命令中的path正确打开。 这导致我相信用vimparsing%:p时有些奇怪的怪癖! 命令。

有谁知道一种方法来防止%:p使用!时避开括号! 命令? 我读了%:p和:!的帮助,但是找不到解决这个问题的任何东西。

我不知道是否有办法这样做,但是在任何脚本中使用!...%是一个坏主意,因为它是不可能的(至少在POSIX系统上,AFAIK它不是那样的窗口, "禁止”如果你需要传递一个文件名到一个shell命令,使用:execute + shellescape() + expand()

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