emacs - сохранить текущий список буферов в текстовый файл

Довольно часто мне нужно получить простую текстовую копию моих текущих открытых файлов. Причины обычно таковы:

  • Я хочу отправить список в коллега
  • Я хочу задокументировать то, над чем я работаю (обычно в организационном документе)
  • Я хочу воздействовать на один из моих открытых файлов в оболочке. Мне нужно скопировать и вставить путь для этого

Дело в том, что обычные буфер-менюили список-буферыпредоставляют удобное меню для навигации по открытым буферам, но их очень неудобно копировать-вставлять в терминал имена открытых файлов, или выполнить любое из действий, упомянутых выше.Например: я не могу дважды щелкнуть строку, чтобы выбрать полное имя пути, и я не могу использовать последовательность kill/ yankemacs для копирования вокруг имени пути. .

Резюме: Мне нужен способ экспортировать в текстовый файл (или в новый буфер) список открытых файлов без других данных; нет размера файла, режима или любых других метаданных 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"))
9
задан dangonfast 11 May 2012 в 10:30
поделиться