He agregado esta función ahora a Dired + .
Puede usar C-y
(comando diredp-yank-files
) para pegar archivos, cuyos nombres absolutos ha copiado en el anillo de eliminación, en el directorio actual. El "directorio actual" aquí es lo que dired-current-directory
devuelve: el subdirectorio insertado donde se encuentra el cursor, o el directorio principal Dired si el cursor no está en una lista de subdirectorios.
Con un prefijo arg, en su C-y
lugar le solicita el directorio de destino para pegar. Por lo tanto, no necesita estar en un búfer Dired para pegar archivos en un directorio.
Deberías haber copiado los nombres de archivo en el ring de asesinatos usando M-0 w
o M-x diredp-copy-abs-filenames-as-kill
.
En Dired + esos comandos también establecen variables diredp-last-copied-filenames
en la misma cadena de nombres de archivo. C-y
usa el valor de esa variable, no lo que sea actualmente en la cabeza del anillo de matar. Esto significa que no necesita pegar inmediatamente después de copiar los nombres de archivo. Y significa que podría, en lugar de copiar nombres de archivo en el anillo de eliminación, simplemente poner los nombres en esa variable (por ejemplo, mediante programación).
Cuando lo usa C-y
, se le solicita confirmación ( y
o n
). También puede presionar l
(para "lista") cuando se le solicite, para mostrar la lista de archivos que se pegarán.
También puede copiar los archivos marcados desde el búfer Dired actual y cualquier archivo marcado en sus subdirectorios marcados, definidos de forma recursiva . Para eso usa M-0 M-+ M-w
(prefijo cero arg con comando diredp-copy-filename-as-kill-recursive
) o usa M-x diredp-copy-abs-filenames-as-kill-recursive
.
Tenga en cuenta que con Dired + también puede tener fácilmente un búfer Dired que enumera cualquier número de archivos y directorios, desde cualquier lugar. Es decir, las entradas enumeradas no necesitan estar en el mismo directorio o incluso en directorios relacionados. Ver C-x D F
(comando diredp-dired-for-files
), que está en el menú de la barra de menú Dir como elemento Dired Files ubicado en cualquier lugar . Puede marcar y luego pegar (copiar) dichos archivos arbitrarios desde un búfer Dired a cualquier directorio.
Actualización 2019-04-22:
También agregué la capacidad de mover (no solo pegar) los archivos cuyos nombres (absolutos) copió al anillo de matar al directorio actual (u otro). Esto está obligado C-w
en Dired.
diredp-move-files-named-in-kill-ring
es una función interactiva de Lisp en dired+.el
.
(diredp-move-files-named-in-kill-ring &optional DIR NO-CONFIRM-P DETAILS)
Mueva los archivos, cuyos nombres absolutos copió, al directorio actual.
Con un argumento de prefijo no negativo, se le solicitará el directorio de destino.
Con un argumento de prefijo no positivo, puede ver detalles sobre los archivos si presiona l
cuando se le solicite que confirme el pegado. De lo contrario, solo verá los nombres de los archivos. Los detalles que ve están definidos por la opción
diredp-list-file-attributes
.
Deberías haber copiado la lista de nombres de archivo como una cadena al anillo de matar usando M-0 w
o M-x diredp-copy-abs-filenames-as-kill
. Esos comandos también establecen variables diredp-last-copied-filenames
en la misma cadena. diredp-move-files-named-in-kill-ring
usa el valor de esa variable, no lo que sea actualmente en la cabeza del anillo de matar.
Cuando se llama desde Lisp:
- Argumento opcional
NO-CONFIRM-P
significa no pedir confirmación para moverse.
- Argu opcional
DETAILS
se pasa a diredp-y-or-n-files-p
.
C-w
que mover / renombrar el archivo en lugar de copiar? Gracias