開いているすべてのファイルを一覧表示したdiredバッファーを作成するにはどうすればよいですか?


9

diredバッファからアイテムをディスクに書き込むメカニズムがあります。残念ながら、私がパッチを当てたファイルはファイルシステム全体に散らばっています。dired開いているすべてのファイルからバッファを作成するにはどうすればよいですか?



@Drew私は少なくとも厳密にではなく、重複ではないと主張します。この質問は、単に「ファイルにバインドされているすべての開いているバッファのリストを取得するにはどうすればよいですか?」
Sean Allred 2014年

@Drew具体的に:(sort (remove nil (mapcar #'buffer-file-name (buffer-list))) #'string<)
Sean Allred

追加された情報は、buffer-list(私が知っていた)存在するものであり、(私が知らなかった)ファイルがないときにbuffer-file-name返されますnil。提案された複製にはこの情報が含まれていないか、必要がありません。
Sean Allred 2014年

1
@Drew私の経験では、すべての質問をできるだけモジュール化しようとすることは、長所というより短所です。これは、Googleからこれに出くわした人や、単にGoogleがユースケースを作成したからといって登録することのない人にとっての有用性を低下させます。TeX.SEでのすべての質問と、同じ概念的な答えを持っているだまし絵の質問をやりたい場合、節度は悪夢になり、サイトは暗闇に突入するでしょう。
Sean Allred 2014年

回答:


12

このdiredコマンドは、ファイル名のリストを引数として受け入れます。作成して渡すだけです。

(dired
 (cons
  "Open Files"
  (sort (remove nil (mapcar #'buffer-file-name (buffer-list)))
       #'string<))) 

これは1つのファイルを見逃していると思います。リストを渡してそのリストの最初の要素をディレクトリ名として、残りをファイルとして受け取ります。これはどうですか:(dired (cons "*Open Files*" (sort (remove nil (mapcar #'buffer-file-name (buffer-list))) #'string<)))
glucas 2014年

ただメモ:これは、まだディスクに保存されていないファイル関連のバッファがある場合はエラーになります。
Sean Allred 2014年

1

文字列のリストをdired関数に提供するだけです、例:

(dired '("custom dired" ".emacs.d/init.el" "mydotfiles/.bashrc"))

編集

@Malabarbaの回答が最善の方法です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.