5

我正在尝试使用子进程调用 Vim,并传递一个参数。例如:

subprocess.call(['gvim.exe', ''' "+map <F5> :echo 'Hello!'<cr>" '''])

此命令适用于命令行:

> gvim.exe "+map <F5> :echo 'Hello!'<cr>"

然后我打了F5它,它告诉我你好。

子进程调用不起作用。当我在任务管理器中查看进程时,我看到我的字符串现在是:

"\" +map <F5> :echo 'Hello!'<cr>\""

完全不是我所期望的,我也不认为这是 Vim 所期望的。看起来subprocess以某种方式逃避了我的报价,但我不知道为什么。

有什么办法可以让它像我期望的那样工作吗?

4

1 回答 1

5

引号不是必需的,因为subprocess.call将参数直接传递给进程而不使用外壳(除非您设置shell=True)。

所以,subprocess.call(['gvim.exe', "+map <F5> :echo 'Hello!'<cr>"])就够了。

于 2013-01-31T18:12:30.643 回答