3

当我编译c++文件时,emacs显示:</p>

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

但是y没有效果。如何杀死 Emacs 中的活动进程?进程列表中有许多正在运行的进程。

4

1 回答 1

4

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

(list-processes)

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

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

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

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

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

这里有一个简单的方法可以让这个交互:(如果你不使用 IDO,替换ido-completing-readcompleting-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以整理您的杂散进程。

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

于 2012-07-20T05:42:02.607 回答