Ho aggiunto questa funzione ora a Dired + .
È possibile utilizzare C-y
(comando diredp-yank-files
) per incollare i file, i cui nomi assoluti sono stati copiati nel kill ring, nella directory corrente. La "directory corrente" qui è cosadired-current-directory
restituisce: la sottodirectory inserita in cui si trova il cursore o la directory principale Dired se il cursore non si trova in un elenco di sottodirectory.
Con un prefisso arg, C-y
invece richiesta la directory di destinazione per l'incolla. Quindi non è necessario trovarsi in un buffer Dired per incollare i file in una directory.
Dovresti aver copiato i nomi dei file sul kill ring usando M-0 w
o M-x diredp-copy-abs-filenames-as-kill
.
In Dired + questi comandi impostano anche la variabile diredp-last-copied-filenames
sulla stessa stringa di nomi di file. C-y
usa il valore di quella variabile, non quello che è attualmente alla testa del kill ring. Ciò significa che non è necessario incollarlo immediatamente dopo aver copiato i nomi dei file. E significa che potresti, invece di copiare i nomi dei file sul kill ring, semplicemente inserire i nomi in quella variabile (ad es. A livello di programmazione).
Quando si utilizza C-y
, viene richiesto di confermare ( y
o n
). Puoi anche premere l
(per "elenco") quando richiesto, per visualizzare l'elenco dei file che verranno incollati.
È inoltre possibile copiare i file contrassegnati dal buffer Dired corrente e tutti i file contrassegnati nelle sue sottodirectory contrassegnate, definite in modo ricorsivo . Per quello usi M-0 M-+ M-w
(prefisso zero arg con comando diredp-copy-filename-as-kill-recursive
) o usi M-x diredp-copy-abs-filenames-as-kill-recursive
.
Nota che con Dired + puoi anche avere facilmente un buffer Dired che elenca qualsiasi numero di file e directory, ovunque. Cioè, le voci elencate non devono necessariamente trovarsi nella stessa directory o anche in directory correlate. Vedi C-x D F
(comando diredp-dired-for-files
), che si trova nel menu della barra dei menu di Dir come voce File diretti situati ovunque . È possibile contrassegnare e quindi incollare (copiare) tali file arbitrari da un buffer Dired in qualsiasi directory.
Aggiornamento 22-04-2019:
Ho anche aggiunto la possibilità di spostare (non solo incollare) i file i cui nomi (assoluti) sono stati copiati nel kill ring nella directory corrente (o in un'altra). Questo è legato a C-w
in Dired.
diredp-move-files-named-in-kill-ring
è una funzione interattiva Lisp in dired+.el
.
(diredp-move-files-named-in-kill-ring &optional DIR NO-CONFIRM-P DETAILS)
Sposta i file, i cui nomi assoluti sono stati copiati, nella directory corrente.
Con un arg di prefisso non negativo viene invece richiesta la directory di destinazione.
Con un arg prefisso non positivo puoi vedere i dettagli sui file se premi l
quando ti viene richiesto di confermare l'incollamento. Altrimenti vedi solo i nomi dei file. I dettagli visualizzati sono definiti dall'opzione
diredp-list-file-attributes
.
Dovresti aver copiato l'elenco dei nomi dei file come stringa nel kill ring usando M-0 w
o M-x diredp-copy-abs-filenames-as-kill
. Questi comandi impostano anche la variabile diredp-last-copied-filenames
sulla stessa stringa. diredp-move-files-named-in-kill-ring
usa il valore di quella variabile, non quello che è attualmente alla testa del kill ring.
Quando viene chiamato da Lisp:
- Arg opzionale
NO-CONFIRM-P
significa non chiedere conferma per spostare.
- Arg opzionale
DETAILS
è passato a diredp-y-or-n-files-p
.
C-w
spostare / rinominare il file anziché copiarlo? Grazie