Como faço para que o emacs pare de me perguntar se eu quero sair de um arquivo modificado sem salvar?

3

Se eu estou fechando um arquivo que possui modificações, o emacs me avisa sobre isso e diz que eu deveria pressionar y ou n.

Mesmo quando pressiono 'n', ele ainda me diz que existem buffers modificados e pergunta se eu quero salvar mesmo assim.

Existe uma maneira de impedir que essa segunda mensagem 'buffers modificados existem' apareça? Depois de ter pressionado 'n', deve ficar claro para o emacs que eu não quero salvar.

Eu faço quero perguntar a primeira pergunta 'y ou n', no entanto.

    
por Tola Odejayi 07.01.2014 / 19:06

1 resposta

1

Este aviso está incorporado em save-buffers-kill-emacs . Você não pode desativá-lo facilmente.

Uma maneira simples de se livrar dele é dizer ao Emacs para salvar todos os buffers, passando um argumento de prefixo para o comando save-buffers-kill-emacs (ou save-buffers-kill-terminal que o chama): digite C-u C-x C-c em vez de C-x C-c . No entanto, você pode não querer fazer isso.

Você pode usar o centro de aconselhamento para modificar o comportamento de funções. Aqui, é complicado porque o código chama uma função genérica ( yes-or-no-p ) bem no meio de alguma lógica difícil de ser hackeada.

(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))

Você pode preferir copiar a definição e remover a chamada ofensiva, no entanto, é provável que exija mais manutenção à medida que o Emacs evolui.

Você realmente precisa disso? Primeiro, o aviso de alterações não salvas geralmente é uma boa ideia, e é por isso que o Emacs faz isso. Segundo, é típico iniciar o Emacs com sua sessão e sair quando você sair, então sair do Emacs é algo que acontece raramente.

    
por 08.01.2014 / 03:13

Tags