Tôi đã thêm tính năng này ngay bây giờ vào Dired + .
Bạn có thể sử dụng C-y(lệnh diredp-yank-files) để dán các tệp, có tên tuyệt đối mà bạn đã sao chép vào vòng khử, vào thư mục hiện tại. "Thư mục hiện tại" ở đây là những gì dired-current-directorytrả về: thư mục con được chèn trong đó con trỏ được đặt hoặc thư mục chính được điều hướng nếu con trỏ không nằm trong danh sách thư mục con.
Với một tiền tố arg, C-ythay vào đó sẽ nhắc bạn cho thư mục đích để dán. Vì vậy, bạn không cần phải ở trong bộ đệm Dired để dán tệp vào thư mục.
Bạn nên sao chép tên tệp vào vòng kill bằng cách sử dụng M-0 whoặc M-x diredp-copy-abs-filenames-as-kill.
Trong Dired + các lệnh đó cũng đặt biến diredp-last-copied-filenamesthành cùng một chuỗi tên tệp. C-ysử dụng giá trị của biến đó, không phải bất cứ thứ gì hiện đang đứng đầu vòng giết. Điều này có nghĩa là bạn không cần dán ngay sau khi sao chép tên tệp. Và điều đó có nghĩa là bạn có thể, thay vì sao chép tên tệp vào vòng khử, chỉ cần đặt tên trong biến đó (ví dụ như lập trình).
Khi bạn sử dụng C-y, bạn được nhắc xác nhận ( yhoặc n). Bạn cũng có thể nhấn l(cho "danh sách") khi được nhắc, để hiển thị danh sách các tệp sẽ được dán.
Bạn cũng có thể sao chép các tệp được đánh dấu từ bộ đệm Dired hiện tại và bất kỳ tệp được đánh dấu nào trong các thư mục con được đánh dấu của nó, được định nghĩa đệ quy . Cho rằng bạn sử dụng M-0 M-+ M-w(không có tiền tố arg với lệnh diredp-copy-filename-as-kill-recursive) hoặc sử dụng M-x diredp-copy-abs-filenames-as-kill-recursive.
Lưu ý rằng với Dired +, bạn cũng có thể dễ dàng có bộ đệm Dired liệt kê bất kỳ số lượng tệp và thư mục nào, từ bất cứ đâu. Đó là, các mục được liệt kê không cần phải trong cùng một thư mục hoặc thậm chí trong các thư mục liên quan. Xem C-x D F(lệnh diredp-dired-for-files), trên menu thanh menu Dir dưới dạng mục Tệp được định hướng ở mọi nơi . Bạn có thể đánh dấu và sau đó dán (sao chép) các tệp tùy ý như vậy từ bộ đệm Dired vào bất kỳ thư mục nào.
Cập nhật 2019-04-22:
Tôi cũng đã thêm khả năng di chuyển (không chỉ dán) các tệp có tên (tuyệt đối) mà bạn đã sao chép vào vòng khử vào thư mục hiện tại (hoặc khác). Điều này bị ràng buộc C-wtrong Dired.
diredp-move-files-named-in-kill-ringlà một chức năng Lisp tương tác trong dired+.el.
(diredp-move-files-named-in-kill-ring &optional DIR NO-CONFIRM-P DETAILS)
Di chuyển các tệp, có tên tuyệt đối bạn đã sao chép, vào thư mục hiện tại.
Với tiền tố không âm, thay vào đó, bạn được nhắc cho thư mục đích.
Với tiền tố không tích cực, bạn có thể xem chi tiết về các tệp nếu bạn nhấn lkhi được nhắc xác nhận dán. Nếu không, bạn chỉ thấy tên tập tin. Các chi tiết bạn thấy được xác định bởi tùy chọn
diredp-list-file-attributes.
Bạn nên sao chép danh sách tên tệp dưới dạng chuỗi vào vòng khử bằng cách sử dụng M-0 whoặc M-x diredp-copy-abs-filenames-as-kill. Những lệnh này cũng đặt biến diredp-last-copied-filenamescho cùng một chuỗi. diredp-move-files-named-in-kill-ringsử dụng giá trị của biến đó, không phải bất cứ thứ gì hiện đang đứng đầu vòng giết.
Khi được gọi từ Lisp:
- Tùy chọn arg
NO-CONFIRM-Pcó nghĩa là không yêu cầu xác nhận để di chuyển.
- Arg tùy chọn
DETAILSđược chuyển đến diredp-y-or-n-files-p.
C-wdi chuyển / đổi tên tập tin thay vì sao chép? Cảm ơn