多くの場合、現在開いているファイルの単純なテキスト コピーを取得する必要があります。理由は通常次のとおりです。
- リストを同僚に送りたい
- 自分が取り組んでいることを文書化したい (通常は組織文書)
- シェルで、現在開いているファイルの 1 つを操作したいと考えています。そのためのパス名をコピーして貼り付ける必要があります。
実際には、開いているバッファをナビゲートするための通常のbuffer-menu
またはlist-buffers
便利なメニューを提供していますが、開いているファイルの名前を端末にコピーして貼り付けたり、上記のアクションを実行したりするのは非常に不便です。例: 行をダブルクリックして完全なパス名を選択することはできません。また、kill
/ yank
emacs シーケンスを使用してパス名をコピーすることもできません。
概要: 他のデータなしで、開いているファイルのリストをテキスト ファイル (または新しいバッファー) にエクスポートする方法が必要です。ファイルサイズ、モード、またはその他の emacs メタデータはありません。
そのためのコマンドはありますか?インストールできる追加パッケージはありますか?
編集
何が行われたかについてのフィードバックを提供するために修正された Trey Jackson によるソリューションの追加:
(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"))