Как убить внутренний процесс в Emacs? Например, я запускаю M-x shell
.
Я могу проверить запущенные процессы с помощью M-x list-processes
, но как я могу убить процесс из этого списка?
Как убить внутренний процесс в Emacs? Например, я запускаю M-x shell
.
Я могу проверить запущенные процессы с помощью M-x list-processes
, но как я могу убить процесс из этого списка?
Эта тема древняя, но вот очень быстрый хак, который отлично работает для меня.
(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!")))))
Альтернативный способ:
Вы можете использовать M-x eval-expression
RET
Затем введите: (delete-process "<name-of-the-process>")
RET
(где "name-of-the-process"
ранее было получено из M-x list-processes
RET).
Подтвердите, что процесс был остановлен, повторив M-x list-processes
RET).
И это все.
похоже, что есть новый режим или дополнение, которое вы можете использовать вместо этого под названием list process + а>
(kill-process)
будет работать без спецификации буфера.
- person event_jr; 17.05.2012
(kill-process ...)
у меня не сработало в результате (make-network-process ...)
. Ответ Пауло Томе на использование (delete-process ...)
был уловкой. Похоже, что list-processes+ также использует (delete-process ...)
.
- person chwarr; 17.02.2016
interactive-form
? Это похоже на advice
тип функциональности, но не могли бы вы объяснить, как это работает? Кажется, это изменило бы определение, как если бы для функции было указано interactive (...)
? Таким образом, это в основном делает kill-process
интерактивным и подсказывает пользователю перед убийством? Требуется ли nil
в конце?
- person Miserable Variable; 08.09.2020
(interactive...)
функции, чтобы сделать ее командой. Все, что предшествует nil
в моем коде, просто выбирает, сигнализировать ли об ошибке до того, как остальная часть функции получит шанс запуститься. Если это пройдет, nil
— это фактический список аргументов, который я возвращаю для интерактивного вызова (т. е. пустой список, поскольку все аргументы функции являются необязательными, и я не заполняю ни один из них). Если бы я не сказал об этом явно, я бы оказался во власти любого значения, которое вернула предыдущая форма.
- person phils; 09.09.2020
(list proc)
вместо nil
, чтобы использовать объект процесса, показанный в интерактивной подсказке явно, а не неявно. Результат тот же, но явная версия делает вещи более очевидными.
- person phils; 09.09.2020