-->

Emacs的,内部流程杀戮,任何命令?(Emacs, internal process killin

2019-06-24 12:25发布

如何杀死在Emacs的内部流程? 比如我经营Mx shell

我可以检查正在运行的进程具有Mx list-processes ,但我怎么能杀死从该列表中的程序?

Answer 1:

没有默认键此绑定; 但是看到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)))


Answer 2:

该线程是古老的,但这里是一个非常快的黑客工具,完全适用于我

(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!")))))


Answer 3:

另一种方法:

您可以使用MX eval-expression RET

然后类型: (delete-process "<name-of-the-process>") RET

(其中, "name-of-the-process"之前从所获得的Mx list-processes RET)。

确认的过程被重复的Mx杀害list-processes RET)。

仅此而已。



Answer 4:

它看起来像有一个新的模式或添加上你可以使用,而不是所谓的名单工艺+



文章来源: Emacs, internal process killing, any command?