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-directoryzurü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-yFordert 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 woder 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-filenamesauf dieselbe Zeichenfolge von Dateinamen. C-yVerwendet 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 ( yoder 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-win Dired gebunden .
diredp-move-files-named-in-kill-ringist 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 ldrü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 woder in den Kill-Ring kopiert haben M-x diredp-copy-abs-filenames-as-kill. Diese Befehle setzen auch die Variable diredp-last-copied-filenamesauf dieselbe Zeichenfolge. diredp-move-files-named-in-kill-ringVerwendet den Wert dieser Variablen, nicht das, was sich derzeit am Kopf des Kill-Rings befindet.
Wenn von Lisp angerufen:
- Optionales Argument
NO-CONFIRM-Pbedeutet, dass Sie nicht um Bestätigung für den Umzug bitten müssen.
- Optionales Argument
DETAILSwird an übergeben diredp-y-or-n-files-p.
C-wDatei verschieben / umbenennen anstatt zu kopieren? Danke