Tengo un mecanismo para grabar elementos en un disco desde un diredbúfer. Desafortunadamente, los archivos que he parchado están esparcidos por todo el sistema de archivos. ¿Cómo puedo crear un diredbúfer a partir de todos los archivos abiertos?
9

(sort (remove nil (mapcar #'buffer-file-name (buffer-list))) #'string<)buffer-listexiste (que sí sabía) y quebuffer-file-namevuelvenilcuando no hay ningún archivo (que no sabía). Su duplicado propuesto no contiene esta información ni tiene ninguna necesidad de hacerlo.Respuestas:
El
diredcomando acepta una lista de nombres de archivo como argumento. Simplemente cree uno y páselo:fuente
(dired (cons "*Open Files*" (sort (remove nil (mapcar #'buffer-file-name (buffer-list))) #'string<)))Solo proporcione una lista de cadenas, a la función dired, por ejemplo:
EDITAR
La respuesta de @Malabarba es la mejor manera de hacerlo.
fuente