Довольно часто мне нужно получить простую текстовую копию моих текущих открытых файлов. Причины обычно таковы:
Дело в том, что обычные буфер-меню
или список-буферы
предоставляют удобное меню для навигации по открытым буферам, но их очень неудобно копировать-вставлять в терминал имена открытых файлов, или выполнить любое из действий, упомянутых выше.Например: я не могу дважды щелкнуть строку, чтобы выбрать полное имя пути, и я не могу использовать последовательность kill
/ yank
emacs для копирования вокруг имени пути. .
Резюме: Мне нужен способ экспортировать в текстовый файл (или в новый буфер) список открытых файлов без других данных; нет размера файла, режима или любых других метаданных emacs.
Есть ли для этого приказ? Дополнительный пакет, который я могу установить?
Добавлено решение Трея Джексона, измененное, чтобы предоставить некоторую обратную связь о том, что было сделано:
(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"))