在gVim和Windows 7中使用带空格的文件路径

在gVim和Windows 7中使用带空格的文件路径,vim,windows-7,Vim,Windows 7,这是我从上下文菜单Windows资源管理器中复制的路径:“C:\Vim Python\getTime.py”,我正试图使用Derek Wyatt中看到的Vim表达式寄存器将给定Python脚本的输出插入缓冲区 我已经尝试了所有我能想到的斜杠和引号的组合,以获得以下命令来绑定d以插入脚本的输出,如下所示: imap d=system(“C:\Vim-Python\getTime.py”) 但如果不插入以下错误,我似乎无法使其正常工作: “C:\Vim”未被识别为内部或外部命令, 可操作的程序或批处

这是我从上下文菜单Windows资源管理器中复制的路径:
“C:\Vim Python\getTime.py”
,我正试图使用Derek Wyatt中看到的Vim表达式寄存器将给定Python脚本的输出插入缓冲区

我已经尝试了所有我能想到的斜杠和引号的组合,以获得以下命令来绑定
d
以插入脚本的输出,如下所示:

imap d=system(“C:\Vim-Python\getTime.py”)

但如果不插入以下错误,我似乎无法使其正常工作:

“C:\Vim”未被识别为内部或外部命令,
可操作的程序或批处理文件。

要使用带有空格的文件路径,我需要更改什么

如果你想看看我试过什么,就看一看电视,好好笑一笑。我所做的搜索让我找到了一个答案,但没有一个解决了我的问题,或者至少,我没有正确地阅读它们


对我来说,正确的解决方案是:

imap <c-j>d <c-r>=system(shellescape('C:\Vim Python\getTime.py'))<cr>
imap d=system(shellescape('C:\Vim Python\getTime.py'))

多亏了

使用vim的shellescape功能。 在vim中键入
:帮助shellescape
,以获取特定信息


因此,将行更改为
imap d=system(shellescape(“C:\Vim Python\getTime.py”)
应该可以完成这项工作。

并在路径周围使用单引号,和/或使用前斜杠(
C:/Vim Python/getTime.py
),因为在双引号字符串中使用时,反斜杠将
\t
转义为
。谢谢,
imap d=system(shellescape('C:\Vim Python\getTime.py'))
工作,使用单引号。除非您确实需要重新映射RHS,否则首选
:inoremap
。它避免了对其他映射的干扰。