linux - 从其他选项卡彻底杀死所有 vim 进程

标签 linux vim

我正在使用以下 Linux 命令来终止所有 vim 进程,

ps -ef | grep "gvim" | grep -v grep | awk '{print $2}' | xargs kill

上面的命令正在工作,除了输出:

Vim: Caught deadly signal TERM

还有另一种干净的方法来杀死它吗?

最佳答案

只要您愿意丢失所有未保存的更改并停止任何后台作业,您就可以使用 -s 选项从 kill 命令发送不同的信号。信号 15SIGTERM 是默认信号;您可以执行 kill -s 9彻底杀死进程。这是一个很好的list of signals供引用。

所以你的最终命令将如下所示:

ps -ef | grep "gvim" | grep -v grep | awk '{print $2}' | xargs kill -s 9

这不会生成任何有关致命信号的警告。这也是一种非常讨厌的做事方式,如果你有一个不平凡的 vim 设置,可能会导致一些粗糙的行为。

正如 @moopet 在评论中所说,如果将命令的输出重定向到 /dev/null,您仍然可以使用 SIGTERM。这不会比 SIGKILL 更好,因为 Vim 不会自动保存你的文件,但它可能会给正在执行的任何后台任务一些时间来清理。

或者,如果您愿意更改设置,您始终可以将 vim 作为服务器运行,并从终端向其发出保存并关闭命令。 Vim SE site 有一个很好的解释.

关于linux - 从其他选项卡彻底杀死所有 vim 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58313513/

相关文章:

vim-powerline 插件问题

linux - 如何重置所有环境变量?

PHP 直通执行状态

c++ - 如何在线程创建和退出时调用函数?

Linux文件夹移动访问

html - vim/vi/linux : properly indent html file

linux - 查找与软件相关的文件

ruby - 在 Ruby 上创建别名 - Vim 输出不是终端

linux - 如何删除一行bashrc linux

javascript - 使用 NVM 的 Vim 的 Tern JS