Ich habe diese Funktion jetzt zu Dired + hinzugefügt .
Mit C-y
(Befehl diredp-yank-files
) können Sie Dateien, deren absolute Namen Sie in den Kill Ring kopiert haben, in das aktuelle Verzeichnis einfügen. Das "aktuelle Verzeichnis" gibt hier Folgendes dired-current-directory
zurück: das eingefügte Unterverzeichnis, in dem sich der Cursor befindet, oder das Dired-Hauptverzeichnis, wenn sich der Cursor nicht in einer Unterverzeichnisliste befindet.
C-y
Fordert Sie stattdessen mit einem Präfix arg zur Eingabe des Zielverzeichnisses für das Einfügen auf. Sie müssen sich also nicht in einem Dired-Puffer befinden, um Dateien in ein Verzeichnis einzufügen.
Sie sollten Dateinamen mit M-0 w
oder in den Kill Ring kopiert haben M-x diredp-copy-abs-filenames-as-kill
.
In Dired + setzen diese Befehle die Variable auch diredp-last-copied-filenames
auf dieselbe Zeichenfolge von Dateinamen. C-y
Verwendet den Wert dieser Variablen, nicht das, was sich derzeit am Kopf des Kill-Rings befindet. Dies bedeutet, dass Sie nicht sofort nach dem Kopieren der Dateinamen einfügen müssen. Und es bedeutet, dass Sie, anstatt Dateinamen in den Kill-Ring zu kopieren, einfach die Namen in diese Variable einfügen können (z. B. programmgesteuert).
Wenn Sie verwenden C-y
, werden Sie zur Bestätigung ( y
oder n
) aufgefordert . Sie können auch auf l
(für "Liste") klicken, wenn Sie dazu aufgefordert werden, um die Liste der Dateien anzuzeigen, die eingefügt werden sollen.
Sie können die markierten Dateien auch aus dem aktuellen Dired-Puffer und allen markierten Dateien in den markierten Unterverzeichnissen kopieren , die rekursiv definiert wurden . Dafür verwenden Sie M-0 M-+ M-w
(Null Präfix arg mit Befehl diredp-copy-filename-as-kill-recursive
) oder verwenden M-x diredp-copy-abs-filenames-as-kill-recursive
.
Beachten Sie, dass Sie mit Dired + auch problemlos einen Dired-Puffer haben können, der von überall aus eine beliebige Anzahl von Dateien und Verzeichnissen auflistet. Das heißt, die aufgelisteten Einträge müssen sich nicht im selben Verzeichnis oder sogar in verwandten Verzeichnissen befinden. Siehe C-x D F
(Befehl diredp-dired-for-files
), der sich im Menü der Dir -Menüleiste als Element Dired Files befindet, das sich überall befindet . Sie können solche beliebigen Dateien markieren und dann aus einem Dired-Puffer in ein beliebiges Verzeichnis einfügen (kopieren).
Update 2019-04-22:
Ich habe auch die Möglichkeit hinzugefügt, die Dateien, deren (absolute) Namen Sie in den Kill Ring kopiert haben, in das aktuelle (oder ein anderes) Verzeichnis zu verschieben (nicht nur einzufügen). Dies ist C-w
in Dired gebunden .
diredp-move-files-named-in-kill-ring
ist eine interaktive Lisp-Funktion in dired+.el
.
(diredp-move-files-named-in-kill-ring &optional DIR NO-CONFIRM-P DETAILS)
Verschieben Sie Dateien, deren absolute Namen Sie kopiert haben, in das aktuelle Verzeichnis.
Mit einem nicht negativen Präfix arg werden Sie stattdessen zur Eingabe des Zielverzeichnisses aufgefordert.
Mit einem nicht positiven Präfix arg können Sie Details zu den Dateien anzeigen, wenn Sie auf l
drücken, wenn Sie aufgefordert werden, das Einfügen zu bestätigen. Ansonsten sehen Sie nur die Dateinamen. Die angezeigten Details werden nach Option definiert
diredp-list-file-attributes
.
Sie sollten die Liste der Dateinamen als Zeichenfolge mit M-0 w
oder in den Kill-Ring kopiert haben M-x diredp-copy-abs-filenames-as-kill
. Diese Befehle setzen auch die Variable diredp-last-copied-filenames
auf dieselbe Zeichenfolge. diredp-move-files-named-in-kill-ring
Verwendet den Wert dieser Variablen, nicht das, was sich derzeit am Kopf des Kill-Rings befindet.
Wenn von Lisp angerufen:
- Optionales Argument
NO-CONFIRM-P
bedeutet, dass Sie nicht um Bestätigung für den Umzug bitten müssen.
- Optionales Argument
DETAILS
wird an übergeben diredp-y-or-n-files-p
.
C-w
Datei verschieben / umbenennen anstatt zu kopieren? Danke