Bagaimana saya bisa membuat buffer dired yang mencantumkan semua file yang terbuka?
9
Saya memiliki mekanisme untuk membakar item ke disk dari diredbuffer. Sayangnya, file yang saya tambal berserakan di sistem file. Bagaimana saya bisa membuat diredbuffer dari semua file yang terbuka?
@Drew Saya berpendapat bukan duplikat, setidaknya tidak ketat. Pertanyaan ini hanya akan menjadi 'Bagaimana cara saya mendapatkan daftar semua buffer terbuka yang terikat pada file?'.
Informasi yang ditambahkan adalah yang buffer-listada (yang saya tahu) dan yang buffer-file-namekembali nilketika tidak ada file (yang saya tidak tahu). Duplikat yang Anda usulkan tidak mengandung informasi ini atau tidak perlu.
Sean Allred
1
@Drew Dalam pengalaman saya, mencoba membuat setiap pertanyaan semodel mungkin adalah kerugian daripada keuntungan. Ini mengurangi kegunaannya dengan orang-orang yang menemukan ini dari Google dan tidak akan pernah mendaftar hanya karena mereka menggunakan kasus penggunaan Google . Jika saya ingin melalui setiap pertanyaan di TeX.SE dan pertanyaan yang ditipu yang memiliki jawaban konseptual yang sama, moderasi akan menjadi mimpi buruk dan situs akan tenggelam dalam kegelapan.
Sean Allred
Jawaban:
12
The diredperintah menerima daftar file-nama sebagai argumen. Cukup buat satu dan berikan padanya:
Saya pikir ini melewatkan satu file: ketika Anda melewati daftar untuk memasukkan elemen pertama dalam daftar itu diambil sebagai nama direktori, sisanya sebagai file. Bagaimana dengan ini:(dired (cons "*Open Files*" (sort (remove nil (mapcar #'buffer-file-name (buffer-list))) #'string<)))
glucas
Hanya sebuah catatan: ini akan salah jika ada buffer terkait file yang belum disimpan ke disk.
Sean Allred
1
Cukup sediakan daftar string, ke fungsi dired, contoh:
(sort (remove nil (mapcar #'buffer-file-name (buffer-list))) #'string<)
buffer-list
ada (yang saya tahu) dan yangbuffer-file-name
kembalinil
ketika tidak ada file (yang saya tidak tahu). Duplikat yang Anda usulkan tidak mengandung informasi ini atau tidak perlu.Jawaban:
The
dired
perintah menerima daftar file-nama sebagai argumen. Cukup buat satu dan berikan padanya:sumber
(dired (cons "*Open Files*" (sort (remove nil (mapcar #'buffer-file-name (buffer-list))) #'string<)))
Cukup sediakan daftar string, ke fungsi dired, contoh:
EDIT
@Malabarba jawaban adalah cara terbaik untuk pergi.
sumber