Gostaria de poder salvar uma cópia (ou um instantâneo) de um buffer em um arquivo. O comportamento seria semelhante a write-file
, exceto que ele não configuraria o buffer para visitar este arquivo.
Para um caso de uso, imagine que você tenha uma sessão de shell e deseje salvar tudo rapidamente em um arquivo de log. O buffer não deve ser renomeado (para que as funções que dependem do nome do buffer ainda funcionem) e não deve estar visitando um arquivo (para que o arquivo não seja substituído acidentalmente e não haja aviso ao sair do emacs).
Posso imaginar algumas maneiras sujas de fazer isso, postarei uma como resposta automática, mas, lendo o manual, todo o sistema "arquivo visitado" é mais complicado do que parece, e acho que é fácil redigir uma solução errada. Existe uma maneira oculta e integrada de conseguir isso?
write-region
Lisp (por exemplo, em seu próprio comando). Apenas passe(point-min)
e(point-max)
, junto com o nome do arquivo.