如何创建映射以从 Vim 执行 python 代码?

How to create a mapping to execute python code from Vim?

这是我从 Vim 执行 python 代码所遵循的步骤:

  1. 我使用 Vim
  2. 编写了 python 源代码
  3. 我通过:w !python
  4. 执行

而且我想要一个更短的方式来执行代码,所以我在网上搜索了一个快捷键,比如这张图:

autocmd FileType python nnoremap <buffer> <F9> :exec '!python' shellescape(@%, 1)<cr>

并将其添加到 _vimrc 文件中。但是当我点击 F9 时,会出现以下错误消息:

上图中的相关文字如下:

python: can't open file ''D:/py2.py'': [Errno 22] Invalid argument
shell returned 2.

我已经在互联网上搜索过了,但我没有得到任何结果。

我在 Windows 10 中使用 gVim 8.0,如果有帮助的话。

通过 vim 与命令行交互,最好的方式是感叹号。
而不是:

:exec '!python' shellescape(@%, 1)<cr>

尝试简单的方法:

:update<bar>!python %<CR>

在上面的代码中:
update 修改后保存文件(首选)或者也可以使用w.
<bar> 管道命令。
!python % 将 运行 文件作为 python filename.

所以基本上,将其放入您的 .vimrc 文件中,就可以了:

autocmd FileType python nnoremap <buffer> <F9> :update<bar>!python %<CR>