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-directory
trả 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-y
thay 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 w
hoặc M-x diredp-copy-abs-filenames-as-kill
.
Trong Dired + các lệnh đó cũng đặt biến diredp-last-copied-filenames
thành cùng một chuỗi tên tệp. C-y
sử 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 ( y
hoặ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-w
trong Dired.
diredp-move-files-named-in-kill-ring
là 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 l
khi đượ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 w
hoặc M-x diredp-copy-abs-filenames-as-kill
. Những lệnh này cũng đặt biến diredp-last-copied-filenames
cho cùng một chuỗi. diredp-move-files-named-in-kill-ring
sử 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-P
có 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-w
di chuyển / đổi tên tập tin thay vì sao chép? Cảm ơn