2012-07-20 109 views
1

正在运行的进程。当我编译C++文件时,Emacs显示:如何杀死在Emacs

编译进程正在运行,杀死它(是或否)?

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

(list-processes)

如果你想有一个通用kill-: -

回答

3

不知道是否有一个更简单的,互动的解决方案,但使用比特的elisp的,你可以得到的处理信息的缓冲区所有正在运行的进程,一个简单的例子是:

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

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

如果你想通过在列表中显示的名称删除特定工艺处理缓冲区:

(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收拾你流浪的过程。

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