Я добавил эту функцию сейчас в Dired + .
Вы можете использовать C-y
(команду diredp-yank-files
) для вставки файлов, чьи абсолютные имена вы скопировали в список уничтожений, в текущий каталог. Здесь dired-current-directory
возвращается «текущий каталог» : вставленный подкаталог, в котором находится курсор, или основной каталог Dired, если курсор отсутствует в списке подкаталогов.
С префиксом arg C-y
вместо этого запрашивает целевой каталог для вставки. Таким образом, вам не нужно находиться в буфере Dired для вставки файлов в каталог.
Вы должны были скопировать имена файлов в список уничтожений с помощью M-0 w
или M-x diredp-copy-abs-filenames-as-kill
.
В Dired + эти команды также устанавливают переменную diredp-last-copied-filenames
для той же строки имен файлов. C-y
использует значение этой переменной, а не то, что в данный момент находится во главе списка уничтожений. Это означает, что вам не нужно вставлять сразу после копирования имен файлов. И это означает, что вы можете вместо копирования имен файлов в список уничтожений просто поместить имена в эту переменную (например, программно).
Когда вы используете C-y
, вам будет предложено подтвердить ( y
или n
). Вы также можете нажать l
(для «списка») при появлении запроса, чтобы отобразить список файлов, которые будут вставлены.
Вы также можете скопировать помеченные файлы из текущего буфера Dired и любые помеченные файлы в его отмеченных подкаталогах, определенных рекурсивно . Для этого вы используете M-0 M-+ M-w
(нулевой префикс arg с командой diredp-copy-filename-as-kill-recursive
) или используйте M-x diredp-copy-abs-filenames-as-kill-recursive
.
Обратите внимание, что с Dired + вы также можете легко иметь буфер Dired, который перечисляет любое количество файлов и каталогов из любого места. То есть перечисленные записи не обязательно должны находиться в одном каталоге или даже в связанных каталогах. Смотрите C-x D F
(команда diredp-dired-for-files
), которая находится в меню строки меню Dir как пункт Dired Files, расположенные где угодно . Вы можете пометить, а затем вставить (скопировать) такие произвольные файлы из буфера Dired в любой каталог.
Обновление 2019-04-22:
Я также добавил возможность перемещать (а не просто вставлять) файлы, чьи (абсолютные) имена вы скопировали в список уничтожений в текущий (или другой) каталог. Это обязательно C-w
в Dired.
diredp-move-files-named-in-kill-ring
представляет собой интерактивную функцию Лиспа в dired+.el
.
(diredp-move-files-named-in-kill-ring &optional DIR NO-CONFIRM-P DETAILS)
Переместите файлы, чьи абсолютные имена вы скопировали, в текущий каталог.
С неотрицательным префиксом arg вам вместо этого предлагается указать целевой каталог.
С не положительным префиксом arg вы можете увидеть подробную информацию о файлах, если вы нажмете, l
когда будет предложено подтвердить вставку. В противном случае вы видите только имена файлов. Детали, которые вы видите, определяются опцией
diredp-list-file-attributes
.
Вы должны были скопировать список имен файлов в виде строки в список уничтожений, используя M-0 w
или M-x diredp-copy-abs-filenames-as-kill
. Эти команды также устанавливают переменную diredp-last-copied-filenames
в той же строке. diredp-move-files-named-in-kill-ring
использует значение этой переменной, а не то, что в данный момент находится во главе списка уничтожений.
Когда звонят из Лисп:
- Необязательный аргумент arg
NO-CONFIRM-P
означает не запрашивать подтверждение для перемещения.
- Необязательный аргумент
DETAILS
передается в diredp-y-or-n-files-p
.
C-w
перемещать / переименовывать файл вместо копирования? Спасибо