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

How to run current python script without locking Vim?

到 运行 当前 Python script/file 在 Vim 我使用这个命令:

:!python %

问题是这会锁定 Vim,所以我无法查看或编辑 Vim 中的文件,直到我关闭命令 window。

这是给 Windows 的。

如何在不锁定 Vim 中的当前 script/file 的情况下 运行 Python-脚本?

试试这个,如果你的脚本没有输出,或者流输出到文件

:!python % &

按回车键 return 你应该 vim

Vim 有问题 运行 异步处理,有几种方法可以解决这个问题,但对您来说最简单的方法是获取一个可以为您完成的插件。

试试 tpope 的 Dispatch:https://github.com/tpope/vim-dispatch

然后你可以运行 :Start! python % 到 运行 它在后台。

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

:!start python %

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

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

:ter python %

:%ter python

我通常在 tmux window 中使用 vim,水平分成两部分,为此并使用以下映射,假设我想 运行 [=16] =] 下部窗格中的脚本(窗格编号 1),

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

如果您现在按 ,s,这将在窗格 1

中执行您的脚本