Emacs
如何阻止 emacs 詢問我是否要退出修改後的文件而不保存?
如果我正在關閉一個有修改的文件,emacs 會警告我並說我應該按 y 或 n。
即使我按“n”,它仍然告訴我修改後的緩衝區存在,並詢問我是否要保存。
有沒有辦法阻止第二個“已修改緩衝區存在”消息的出現?一旦我按下了’n’,emacs 應該清楚我不想保存。
不過,我確實希望它問我第一個“y 或 n”問題。
此警告內置於
save-buffers-kill-emacs
. 你不能輕易禁用它。擺脫它的一種簡單方法是告訴 Emacs 保存所有緩衝區,方法是將前綴參數傳遞給
save-buffers-kill-emacs
命令(或save-buffers-kill-terminal
呼叫它的命令): typeC-u C-x C-c
而不是C-x C-c
. 但是,您可能不想這樣做。您可以使用建議工具來修改函式的行為。
yes-or-no-p
在這裡,它很麻煩,因為程式碼在一些難以破解的邏輯中間呼叫了一個通用函式 ( )。(require 'cl) (defadvice save-buffers-kill-emacs (around save-buffers-kill-emacs-no-modified-yes-no activate compile)) (let ((real-yes-or-no-p (symbol-function 'yes-or-no-p))) (flet ((yes-or-no-p (msg) (or (equal msg "Modified buffers exist; exit anyway? ") (funcall real-yes-or-no-p msg))))) ad-do-it))
您可能更喜歡複製定義並刪除有問題的呼叫,但是隨著 Emacs 的發展,這可能需要更多的維護。
你真的需要這個嗎?首先,警告未保存的更改通常是個好主意,這就是 Emacs 這樣做的原因。其次,通常在您的會話中啟動 Emacs 並在您註銷時退出它,因此退出 Emacs 是很少發生的事情。