如何在Emacs中杀死正在运行的进程

How do I kill a running process in Emacs

本文关键字:运行 进程 Emacs      更新时间:2023-10-16

当我编译c++文件时,emacs显示:

编译过程正在运行;杀死它?(y或n)。

但CCD_ 1没有任何作用。如何在Emacs中杀死活动进程?进程列表中有许多正在运行的进程。

不确定是否有更简单的交互式解决方案,但使用一点elisp,您可以通过以下方式获得流程信息的缓冲区:

(list-processes)

如果你想要一个通用的杀死所有正在运行的进程,一个简单的例子是:

(mapcar 'delete-process (process-list))

(注意,我们在这里使用了process-list)。

如果您想按列表进程缓冲区中显示的名称删除特定进程:

(delete-process (get-process "name of proc"))

这里有一个简单的方法,你可以让这个互动:(如果不使用IDO,请将ido-completing-read替换为completing-read或类似产品)

(defun delete-process-interactive ()
  (interactive)
  (let ((pname (ido-completing-read "Process Name: " 
                    (mapcar 'process-name (process-list)))))
    (delete-process (get-process pname))))

然后运行或密钥绑定delete-process-interactive来整理您的杂散进程。

虽然这是一个解决方案,但您可能需要进一步调查导致这种行为的原因。要获得其他人的帮助,您需要提供更多信息。