Как мне получить предупреждение перед удалением временного буфера в Emacs?

StackOverflow https://stackoverflow.com/questions/86963

  •  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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top