如何杀死在Emacs的内部流程? 比如我经营Mx shell
。
我可以检查正在运行的进程具有Mx list-processes
,但我怎么能杀死从该列表中的程序?
如何杀死在Emacs的内部流程? 比如我经营Mx shell
。
我可以检查正在运行的进程具有Mx list-processes
,但我怎么能杀死从该列表中的程序?
没有默认键此绑定; 但是看到pjammer的答案- list-processes+
包括(除其他事项外)一个杀死CK结合-也塔沃拉若奥的答案-这仅仅提供杀结合(对于同一个密钥)。
event_jr在评论中指出,你可以用M-: (kill-process)
RET杀死当前缓冲的过程。
更普遍的:你可以用M-: (kill-process PROCESS)
RET,其中PROCESS
“可能是一个过程,一个缓冲或进程的名称或缓冲区”,这些名字是因为他们出现在输出list-processes
。 进程名优先缓冲区的名字,你万一有冲突; 所以它可能最好是在供应过程中的名字的习惯。
可替代地,Emacs的23+具有一般系统进程管理器( Mx proced
),其更类似于运行top
,并且其确实具有默认用于发送(任意的)的信号(k)的结合。 当然,也可能是远在处理你感兴趣的是上市不那么明显。
编辑:迟到总比永远:)下面让的Mx kill-process
中使用RET(在Emacs 26.1测试):
;; Enable M-x kill-process (to kill the current buffer's process).
(put 'kill-process 'interactive-form
'(interactive
(let ((proc (get-buffer-process (current-buffer))))
(if (process-live-p proc)
(unless (yes-or-no-p (format "Kill %S? " proc))
(error "Process not killed"))
(error (format "Buffer %s has no process" (buffer-name))))
nil)))
该线程是古老的,但这里是一个非常快的黑客工具,完全适用于我
(define-key process-menu-mode-map (kbd "C-k") 'joaot/delete-process-at-point)
(defun joaot/delete-process-at-point ()
(interactive)
(let ((process (get-text-property (point) 'tabulated-list-id)))
(cond ((and process
(processp process))
(delete-process process)
(revert-buffer))
(t
(error "no process at point!")))))
另一种方法:
您可以使用MX eval-expression
RET
然后类型: (delete-process "<name-of-the-process>")
RET
(其中, "name-of-the-process"
之前从所获得的Mx list-processes
RET)。
确认的过程被重复的Mx杀害list-processes
RET)。
仅此而已。
它看起来像有一个新的模式或添加上你可以使用,而不是所谓的名单工艺+