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


13

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


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

Ответы:


22

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


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


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.
Дрю
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.