如何在不锁定Vim的情况下运行当前的python脚本?

时间:2015-04-17 20:40:07

标签: python windows vim

要在Vim中运行当前的Python脚本/文件,我使用以下命令:

:!python %

问题是这会锁定Vim,因此在关闭cmd窗口之前,我无法查看或编辑Vim中的文件。

这适用于Windows。

如何在不将当前脚本/文件锁定在Vim中的情况下运行Python脚本?

6 个答案:

答案 0 :(得分:2)

在Unix上,您可以将&附加到命令(shell功能); Windows Vim具有特殊的:!start命令。

:!start python %

答案 1 :(得分:1)

尝试此操作,如果您的脚本没有输出,或者将输出流输出到文件

:!python % &

按Enter键应该返回vim

答案 2 :(得分:1)

Vim在异步运行时遇到问题,有几种方法可以解决这个问题,但最简单的方法就是获取一个可以为你完成的插件。

尝试使用tpope的调度:https://github.com/tpope/vim-dispatch

然后您可以运行:Start! python %在后​​台运行它。

答案 3 :(得分:0)

或者只是执行pyf %或将其映射到某个键,例如map <F8> pyf %<CR>

答案 4 :(得分:0)

从8.0版开始,如果您的Vim是使用+terminal功能进行编译的,则在编辑其他文件时可以在单独的窗口中查看脚本的输出。

:ter python %

:%ter python

enter image description here

答案 5 :(得分:0)

我通常在tmux窗口中使用vim,为此将其水平分成两部分,并使用以下映射,假设我想在下部窗格中运行python脚本(1号窗格),

nnoremap ,s :execute '!tmux send-keys -t 1 ''python ' . expand('%:p') .' '' Enter '<cr>

如果您现在按,s,这将在窗格1中执行脚本