Заставьте Emacs перестать спрашивать "Активные процессы существуют, убивайте их и выходите в любом случае"
Несмотря на все советы, что это плохая идея, я еще хотел бы, чтобы Emacs перестала спрашивать меня: "Активные процессы существуют, убивайте их и выходите в любом случае", когда я нажимаю C-c C-x. Я бы хотел, чтобы он просто убил все активные процессы, не спрашивая.
Как я могу это сделать?
Ответы
Ответ 1
Этот фрагмент (входит в ваш файл настройки .emacs) временно заставит Emacs полагать, что нет активного процесса, когда вы его убиваете, и поэтому вы не получите раздражающее приглашение.
(require 'cl-lib)
(defadvice save-buffers-kill-emacs (around no-query-kill-emacs activate)
"Prevent annoying \"Active processes exist\" query when you quit Emacs."
(cl-letf (((symbol-function #'process-list) (lambda ())))
ad-do-it))
Ответ 2
Вы можете выполнить это, установив флаг query-on-exit для каждого процесса в нуль.
Вы можете использовать крючок для этого автоматически при выполнении интерпретатора команд:
(add-hook 'comint-exec-hook
(lambda () (set-process-query-on-exit-flag (get-buffer-process (current-buffer)) nil)))
Ответ 3
В следующей версии Emacs (25.3 или 26.1) будет добавлен новый параметр настройки confirm-kill-processes
, чтобы сделать это проще. Затем вы можете сказать M-x customize-variable RET confirm-kill-processes RET
и установить переменную в nil
, чтобы подавить запрос подтверждения.
Ответ 4
Вы не можете без взлома. Если вы чувствуете себя авантюрно, замените определение save-buffers-kill-emacs
на .emacs
так, чтобы он не спрашивал (но не забывайте повторять процедуру каждый раз, когда вы обновляете Emacs). Стандартное отклонение этой функции запрашивает без каких-либо способов настройки этого поведения.
EDIT:
В качестве альтернативы вы можете переопределить yes-or-no-p
следующим образом (untested):
(defadvice yes-or-no-p (around hack-exit (prompt))
(if (string= prompt "Active processes exist; kill them and exit anyway? ")
t
ad-do-it))
Ответ 5
(if (get-buffer your-process-buffer)
(progn
(if (get-buffer-process your-process-buffer)
(set-process-query-on-exit-flag (get-buffer-process your-process-buffer) nil)
(kill-buffer your-process-buffer))))