Très souvent, j'ai besoin d'obtenir une simple copie textuelle de mes fichiers actuellement ouverts. Les raisons sont généralement les suivantes :
- Je veux envoyer la liste à un collègue
- Je veux documenter ce sur quoi je travaille (généralement dans un document d'organisation).
- Je veux agir sur un de mes fichiers actuellement ouverts, sur le shell. J'ai besoin de copier-coller le chemin d'accès pour cela.
Le fait est que l'habituel buffer-menu
o list-buffers
fournissent un menu pratique pour naviguer dans les tampons ouverts, mais sont très peu pratiques pour copier-coller dans le terminal les noms des fichiers ouverts, ou pour effectuer l'une des actions mentionnées ci-dessus. Par exemple : Je ne peux pas double-cliquer dans une ligne pour sélectionner le nom complet du chemin, et je ne peux pas utiliser la fonction kill
/ yank
séquence emacs à copier autour du nom du chemin.
Résumé : Je voudrais un moyen d'exporter vers un fichier texte (ou vers un nouveau tampon) la liste des fichiers ouverts, sans autres données ; pas de taille de fichier, de mode, ou toute autre métadonnée emacs.
Y a-t-il une commande pour cela ? Un paquet supplémentaire que je peux installer ?
EDIT
Ajout d'une solution par Trey Jackson, modifiée pour fournir un retour sur ce qui a été fait :
(defun copy-open-files ()
"Add paths to all open files to kill ring"
(interactive)
(kill-new (mapconcat 'identity
(delq nil (mapcar 'buffer-file-name (buffer-list)))
"\n"))
(message "List of files copied to kill ring"))