подтверждение после Cx Cc перед выходом из Emacs

13

Могу ли я настроить Emacs для запроса подтверждения перед выходом C-x C-c? (Иногда мои пальцы нажимают на это по ошибке.)

imz - Иван Захарящев
источник
Смотрите также Предотвратить выход Emacs после запуска процедуры выхода? для некоторых других связанных предложений.
imz - Иван

Ответы:

22

Установите переменную confirm-kill-emacsна что-то вроде yes-or-no-p.

legoscia
источник
2
Благодарность! Жаль, что это не упоминается в save-buffers-kill-terminalдокументации ...
imz - Иван Захарящев
1
Это упоминается только для save-buffers-kill-emacs, который раньше был обязательным для C-x C-cдо 23.1. Это должно быть обновлено, кажется.
Legoscia
1
@ imz - ИванЗахарьящев: Да; также kill-emacs-query-functions. Смотрите Emacs bug # 10794 . (И ошибка # 11181 , хотя и не имеет прямого отношения, здесь также имеет значение.)
Дрю
6

Распространенной альтернативой является открепление ключа с помощью

(global-unset-key (kbd "C-x C-c"))

Вы всегда можете выйти через M-x save-buffers-kill-terminal

nperson325681
источник
6

Я использую это, которое работает во всех версиях Emacs:

(add-hook 'kill-emacs-query-functions
          (lambda () (y-or-n-p "Do you really want to exit Emacs? "))
          'append)
Нарисовалась
источник
3
Было бы неплохо объяснить, чем это отличается от настройки confirm-kill-emacs. IIUC, разница в том, что c-k-eигнорируется, если есть измененные буферы (которые уже запрашивают подтверждение) или активные процессы (также запрашивает подтверждение).
YoungFrog
@YoungFrog: То, что вы говорите, правда, но только для Emacs 25, не раньше. И confirm-kill-emacsне существует до Emacs 21.
Дрю