如何在Emacs中终止正在运行的进程

时间:2012-07-20 04:31:53

标签: c++ emacs process

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

  

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

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

1 个答案:

答案 0 :(得分:4)

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

(list-processes)

如果你想要一个通用的kill-all运行进程,一个简单的例子就是:

(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以整理您的迷路进程。

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