gpt4 book ai didi

vim - 当路径在 Windows 上有空格时,如何从 vim 脚本运行 !

转载 作者:行者123 更新时间:2023-12-04 15:47:40 25 4
gpt4 key购买 nike

我正在尝试使用 :!<cmd>在 vim 中格式化以执行外部命令并将结果放入缓冲区。如果我输入 :! ,路径补全是可能的,我可以补全路径直到我要执行的命令。这会自动转义空格,如下所示:

:!c:\Program\ Files\ (x86)\Microsoft\ Visual\ Studio\ 9.0\Common7\IDE\TF.exe

当我输入时,我得到:
'c:\Program\' is not recognized as an internal or external command

我怀疑这意味着 vim 在将命令传递给 cmd.exe 时没有正确转义空格。我尝试了各种转义组合来完成这项工作,但无济于事。我发现这样做的唯一方法是找出 DOS8.3 文件名并使用它而不是长路径名。但是,我不喜欢这种方法,因为它会降低我的脚本的可移植性。有谁知道这是否可以完成,还是vim中的错误?

最佳答案

用双引号将可执行文件的完整路径名括起来。不要在路径名中转义空格。

在您的示例中,添加了一些反斜杠以转义空格,而其他反斜杠是路径名的一部分。您没有提供原始路径名,但我可以猜到。如果我猜对了,可以使用的命令是:

:!"c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\TF.exe"

这在脚本中同样有效。等效的脚本命令是:
silent execute '!"c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\TF.exe"'

我已经在安装在 Windows 7 Pro SP1 x64 上的 Vim 7.3.346 x86 中对此进行了测试。

关于vim - 当路径在 Windows 上有空格时,如何从 vim 脚本运行 !<cmd> ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8125156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com