Подтвердить что ты не робот

Заставьте Emacs перестать спрашивать "Активные процессы существуют, убивайте их и выходите в любом случае"

Несмотря на все советы, что это плохая идея, я еще хотел бы, чтобы Emacs перестала спрашивать меня: "Активные процессы существуют, убивайте их и выходите в любом случае", когда я нажимаю C-c C-x. Я бы хотел, чтобы он просто убил все активные процессы, не спрашивая.

Как я могу это сделать?

4b9b3361

Ответ 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))))