Как получить предупреждение перед уничтожением временного буфера в Emacs? - PullRequest
8 голосов
/ 17 сентября 2008

Не раз я терял работу, случайно убивая временный буфер в Emacs. Могу ли я настроить Emacs для выдачи мне предупреждения, когда я уничтожаю буфер, не связанный с файлом?

Ответы [ 2 ]

10 голосов
/ 18 сентября 2008

Создайте функцию, которая спросит вас, уверены ли вы, когда буфер был отредактирован и не связан с файлом. Затем добавьте эту функцию в список kill-buffer-query-functions.

Глядя на документацию для Имя файла буфера вы понимаете:

  • буфер не посещает файл, если и только если переменная buffer-file-name равна nil

Используйте это понимание, чтобы написать функцию:

(defun maybe-kill-buffer ()
  (if (and (not buffer-file-name)
           (buffer-modified-p))
      ;; buffer is not visiting a file
      (y-or-n-p "This buffer is not visiting a file but has been edited.  Kill it anyway? ")
    t))

А затем добавьте функцию в ловушку следующим образом:

(add-to-list 'kill-buffer-query-functions 'maybe-kill-buffer)
1 голос
/ 18 сентября 2008
(defun maybe-kill-buffer ()
  (if (and (not buffer-file-name)
           (buffer-modified-p))
      ;; buffer is not visiting a file
      (y-or-n-p (format "Buffer %s has been edited.  Kill it anyway? "
                        (buffer-name)))
    t))

(add-to-list 'kill-buffer-query-functions 'maybe-kill-buffer)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...