Как мне получить предупреждение перед удалением временного буфера в Emacs?
-
01-07-2019 - |
Вопрос
Не раз я терял работу из-за случайного уничтожения временного буфера в Emacs.Могу ли я настроить Emacs так, чтобы он выдавал мне предупреждение, когда я уничтожаю буфер, не связанный с файлом?
Решение
Создайте функцию, которая спросит вас, уверены ли вы, что буфер был отредактирован и не связан с файлом.Затем добавьте эту функцию в список kill-buffer-query-functions
.
Просматривая документацию для Имя файла буфера ты понимаешь:
- буфер не посещает файл тогда и только тогда, когда переменная
buffer-file-name
равно нулю
Используйте это понимание для написания функции:
(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)
Другие советы
(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)
Не связан с StackOverflow