Je voudrais pouvoir enregistrer une copie (ou un instantané) d'un tampon dans un fichier. Le comportement serait similaire write-file
, sauf qu'il ne définirait pas le tampon pour visiter ce fichier.
Pour un cas d'utilisation, imaginez que vous avez une session shell et que vous souhaitez tout enregistrer rapidement dans un fichier journal. Le tampon ne doit pas être renommé (de sorte que les fonctions reposant sur le nom du tampon fonctionnent toujours), et il ne doit pas être en train de visiter un fichier (afin que le fichier ne soit pas accidentellement écrasé et qu'il n'y ait aucun avertissement lors de la fermeture d'emacs).
Je peux imaginer quelques façons sales de le faire, j'en posterai une comme réponse automatique, mais en lisant le manuel, l'ensemble du système de "fichiers visités" est plus compliqué qu'il n'y paraît, et je suppose qu'il est facile de rédiger un mauvaise solution. Existe-t-il un moyen caché et intégré d'y parvenir?
write-region
depuis Lisp (par exemple dans votre propre commande). Passez-le(point-min)
et(point-max)
, avec le nom du fichier.C-x h
M-x write-region
M-x write-region
commande actuelle .Sale
elisp
faire ce que je veux faire:Cela ressemble à beaucoup plus de tracas que nécessaire, car nous devons prendre soin à la fois du fichier visité et du nom du tampon, et nous ne pouvons pas être sûrs de n'avoir rien oublié d'autre.
D'autres solutions impliquant la copie du texte du tampon dans un nouveau tampon, puis l'enregistrement et la suppression de ce tampon fonctionneraient probablement mieux, mais je serais alors préoccupé par les problèmes de performances avec les grands tampons.
la source