python - 当 ctrl-C 不起作用时,终止由 vim 创建的 shell

标签 python shell unix vim

我正在 vim 中编写一些线程化的 Python 代码。当我运行我的测试时,用

:! py.test test_me.py

有时它们会挂起,无法用 ctrl-C 杀死。所以我必须在后台运行 vim(实际上是运行测试的 shell)和 pkill py.test .有没有更好的方法来杀死挂起的测试套件?

我试过映射:map ,k:! pkill py.test但这不起作用,因为在测试运行时我的输入将进入运行测试的 shell,而不是 vim。

编辑: 我正在寻找一种方法来终止比 ctrl-Z 更快的测试过程, pkill py.test , fg <cr>返回编辑。理想情况下只是一个热键。

最佳答案

当您在 Vim 中执行 :! 时,您有效地将 Vim 置于后台,并且正在运行的进程(在本例中为 py.test)获得了焦点。这意味着你不能告诉 Vim 为你终止进程,因为 Vim 没有得到你的击键。

Ctrl-Z 在运行 py.test 时将 Vim 置于后台,因为 Vim 是 py.test< 的父进程。因此 shell 通过链,然后将所有子项以及父项置于后台。

我建议您打开另一个终端窗口并在那里完成所有的家务活。

关于python - 当 ctrl-C 不起作用时,终止由 vim 创建的 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31375628/

相关文章:

python - 如何将一个 float 元组写入文件空间,只用一次调用在 python 中写入?

python - 附加现有进程以获取成功或失败命令?

linux - 无法将新文件夹名称附加到 UNIX 脚本中的现有路径

php - 如何使用 shell_exec 和 plesk 11 注册邮件?

python - django {% trans "Hello"%} 不工作

python - 不能使用来自opencv的SIFT算法

linux - BASH grep 模式文件名位于行尾

linux - 我想使用 CVS 显示主文件本身的差异?

c - 从目录读取时出现段错误

unix - 查找带有通配符或类似 "like"的目录名称