Tengo una lista de nombres de archivo (con la ruta completa) y quiero crear un búfer Dired que enumere este conjunto de archivos. ¿Cómo voy a hacer eso?
¿Cómo creo un búfer Dired a partir de una lista de nombres de archivo?
Sin usar dependencias externas.

(find-file your-directory-path)para obtener eldiredbúfer relevante (por ejemplo,(find-file "/tmp/")abrirá sutmpdirectorio en undiredbúfer).Respuestas:
C-h f diredte dice la respuesta Simplemente pasedired, comoDIRNAMEargumento, una lista que tenga como vehículo el nombre del búfer Dired que desea (cualquier cadena) y como cdr la lista de nombres de archivos que desea que aparezcan en el búfer. En general, desea utilizar nombres de archivo absolutos. Por ejemplo:Dependiendo de su plataforma, los nombres de los archivos y directorios inexistentes que ingrese podrían ignorarse (no figurar en la lista) o generar un error. Lo primero sucede si lo usa
ls-lisp.el(por ejemplo, MS Windows). Puede forzar el uso dels-lispcualquier plataforma, si lo desea (perols-lisptiene menoslsopciones), haciendo esto:Si usa la biblioteca Dired + (
dired+.el), puede elegir interactivamente archivos y directorios para enumerar: simplemente proporcionediredun argumento de prefijo no positivo (es decir, <= 0). Luego se le solicitará repetidamente los directorios y los nombres de archivo que desea enumerar. Puede usar comodines de nombre de archivo (es decir,*para globbing), para incluir los archivos y directorios coincidentes. UseC-gpara finalizar la entrada.En otras palabras, en lugar de enumerar un solo directorio, el búfer Dired puede enumerar cualquier cantidad de directorios y nombres de archivos, que incluso pueden pertenecer a diferentes árboles de directorios.
(Un argumento de prefijo no negativo (es decir,> = 0) le solicita los
lsconmutadores de la lista. Por lo tanto, un argumento de prefijo cero le solicita tanto los modificadores como los archivos / directorios para enumerar: primero loslsmodificadores y luego los archivos / directorios.)fuente
(insert ...)para insertar texto en un búfer.diredes una función elisp. Simplemente evalúe esto:(dired '("my-list" "/home/rekado/dev/script.scm" "/home/rekado/another-file"))y obtendrá un búfer directo que contiene estos archivos como escribió @Drew.Aquí hay un comando para hacer esto cuando la lista de archivos está en un búfer, con un archivo por línea.
fuente