2012-05-16 4 views

ответ

22

Для этого нет привязки по умолчанию; однако см. ответ pjammer. list-processes+ включает (помимо всего прочего) привязку kill на C-k - а также ответ Жоао Таворы - который предоставляет только привязку к убийству (для того же ключа).

event_jr указывает в комментариях, что вы можете использовать M-:(kill-process)RET убить процесс в тока буфера.

Более общо: Вы можете использовать M-:(kill-process PROCESS)RET, где PROCESS «может быть процессом, буфер, или имя процесса или буфера», с этими именами быть, как они появляются в выход list-processes. Названия процессов имеют приоритет над именами буфера, если у вас возникнет конфликт; поэтому, вероятно, лучше всего иметь привычку поставлять имя процесса.

В качестве альтернативы, в Emacs 23+ есть менеджер общей системы процесса (M-x proced), которая больше похож на top работает, и который имеет по умолчанию привязки для отправки (произвольные) сигналов (к). Конечно, это может быть гораздо менее очевидны в этом перечислении, какой процесс вы заинтересованы в

+5

, если вы находитесь в буфере, который имеет процесс, связанный, то '(убить-процесс)' будет работать без буфер спецификация. –

+0

это, похоже, не применяется, если процесс не имеет связанного буфера (больше), например, когда вы убили буфер, но это не вызвало убийство фактического процесса, что иногда бывает так. –

+0

Эрик Алик: Я обновил ответ. – phils

2

, похоже, есть новый режим или добавить на вы можете использовать вместо называется list process +

8

Альтернативный способ:.

Вы можете использовать Mxeval-expressionRET

Затем введите: (delete-process "<name-of-the-process>")RET

(где "name-of-the-process" ранее был получен из М-хlist-processesRET).

Убедитесь, что процесс был убит повторением М-хlist-processesRET).

И все.

13

Эта нить древняя, но здесь очень быстрый Хак, который отлично работает для меня

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