Isso não responde à sua pergunta conforme a proposta, portanto, sinta-se à vontade para ignorar ou reduzir o voto.
Duvido que você realmente queira que o Emacs salve todos os buffers em disco, incluindo todos os buffers internos, normalmente invisíveis. Porque você iria querer aquilo?
Não se trata do espaço em disco. É sobre o barulho. Deseja realmente extrair coisas de um diretório em que seus arquivos importantes possam ser misturados com essas coisas? Ou você deseja pescar pérolas ocasionais em um diretório temporário (cujo objetivo é esconder o ruído)?
Buffers que possuem nomes como *...*
(não iniciando com um caractere de espaço) geralmente são apenas de saída (por exemplo, *info*
) ou para interação temporária (por exemplo *scratch*
). Para esses buffers, minha recomendação seria deixar as coisas como estão. Você sempre pode salvar qualquer buffer sob demanda usando C-x C-w
, se realmente precisar.
O que me leva ao que suspeito ser o seu caso de uso real: " buffer [s] para fazer anotações etc. ". A resposta aqui é usar em C-x C-f
vez de C-x b
. IOW, sim, visite-os como buffers de arquivo. Se você nunca salvar o buffer, não haverá arquivo criado - exceto um arquivo de salvamento automático , que provavelmente é exatamente o que você deseja e precisa.
Ao visitar um buffer como um arquivo, você controla automaticamente qual modo principal é usado por padrão (usando auto-mode-alist
). Isso é tão importante para anotações quanto para código de programação.
Em particular, eu sugeriria que, se você usar *scratch*
para interação temporária com Lisp, poderá reconsiderar. Muitos usuários (inclusive eu) descobriram que isso ajuda a usar C-x C-f foo.el
(ou qualquer outro *.el
nome de arquivo). Uma razão é que você obtém arquivos de salvamento automático gratuitamente (e arquivos de backup, se você salvar o buffer). Outro motivo é que você obtém o modo Emacs-Lisp em vez do modo de interação Lisp. Uma terceira razão é que sim, você pode querer salvar seu trabalho "temporário". E como você diz, o espaço em disco é barato.
E o # 4 conflitante com o que eu disse no # 1? Você não deseja misturar arquivos de rabiscos temporários com arquivos importantes e não deseja retirar a pérola ocasional de um diretório de arquivos temporários. A resposta aqui é que depende de você organizar as coisas para que esse efeito seja minimizado. Trabalhar com esses arquivos de rascunho em um diretório específico pode ajudar, assim como o uso de uma convenção de nomenclatura (especialmente um prefixo) que ajuda a distinguir esses arquivos.
Outra coisa que pode ajudar: Dired . Você pode usar ~
e #
para marcar arquivos de backup e salvamento automático para exclusão (depois x
para excluí-los). E se você usar uma convenção de nomenclatura para seus arquivos temporários presumivelmente temporários, poderá usar %
ou semelhante para marcar todos eles para exclusão. Você pode até executar uma função periodicamente para limpar esses arquivos. E você pode renomear facilmente qualquer um que realmente queira manter por mais tempo.
Portanto, meu conselho é talvez reconsiderar como você está interagindo com esses buffers temporários e para anotações. Considere usar buffers de arquivo, que são salvos automaticamente. Em suma, use C-x C-f foobarbaz.txt RET
( .el
ou qualquer outra coisa) em vez de C-x b foobarbaz RET
.
save-some-buffers
possui uma opção para buffers que não visitam arquivos - talvez você possa se casar com isso com um timer e uma função personalizada, quesave-some-buffers
aceita como argumento - consulte a string de documento. Provavelmente já existe algo que faz isso - por exemplo, Google"save-some-buffers" auto save
etc .; e veja a funçãoauto-save-mode
emsimple.el
para algumas idéias. Minha lembrança é que auto-save-buffers aprimorado pode ter feito algo assim: github.com/kentaro/auto-save-buffers-enhanced/blob/master/...