emacs - zapisz bieżącą listę buforów do pliku tekstowego
Często muszę dostać prostą kopię tekstową moich aktualnie otwartych plików. Powody są zazwyczaj:
Chcę wysłać listę do kolegiChcę dokumentować wszystko, nad czym pracuję (zwykle w dokumencie org)Chcę działać na jednym z moich aktualnie otwartych plików, na powłoce. Muszę do tego skopiować i wkleić nazwę ścieżki.Faktem jest, że zwyklebuffer-menu
lublist-buffers
zapewniają wygodne menu do nawigacji po otwartych buforach, ale są bardzo niewygodne, aby skopiować i wkleić do terminala nazwy otwartych plików lub wykonać dowolną z akcji wymienionych powyżej. Na przykład: nie mogę kliknąć dwukrotnie w wierszu, aby wybrać pełną nazwę ścieżki, i nie mogę użyćkill
/yank
sekwencja emacsa do kopiowania wokół nazwy ścieżki.
Podsumowanie: Chciałbym sposób na eksport do pliku tekstowego (lub do nowego bufora) listy otwartych plików, bez innych danych; brak rozmiaru pliku, trybu ani innych metadanych emacsa.
Czy jest do tego polecenie? Dodatkowy pakiet, który mogę zainstalować?
EDYTOWAĆDodanie rozwiązania przez Treya Jacksona, zmodyfikowane w celu dostarczenia informacji zwrotnych o tym, co zostało zrobione:
(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"))