Đường dẫn hiện tại trong Dired hoặc Dired + vào clipboard


18

Nói rằng chúng tôi có một bộ đệm Dired mở trên một số thư mục. Làm thế nào tôi có thể gửi đường dẫn thư mục vào clipboard?

Ngoài ra, làm thế nào tôi có thể làm tương tự khi con trỏ Dired nằm trên một tệp cụ thể mà không cần mở tệp trước?

Câu trả lời:


25

Di chuyển con trỏ đến dòng tiêu đề thư mục (nơi thư mục được hiển thị - ví dụ: sử dụng M-<), sau đó nhấn w. Nó sao chép tên thư mục vào vòng kill. ( wsao chép bất kỳ tên tệp nào từ Dired và nó cũng hoạt động cho tiêu đề thư mục.)

Và nếu bạn chưa làm như vậy, hãy tùy chỉnh x-select-enable-clipboardthành không nil, để lựa chọn được sao chép vào bảng tạm.


Nhận xét của @ Constantine làm cho một điểm tốt. Thay vì di chuyển đến dòng tiêu đề thư mục để có được tên tuyệt đối, bạn chỉ có thể sử dụng C-0 wtrên bất kỳ dòng tệp hoặc thư mục nào. Điều đó sẽ đặt tên tập tin tuyệt đối trong clipboard. Khi bạn dán nó, bạn có thể chỉ cần loại bỏ phần tên tệp tương đối, để có được tên thư mục tuyệt đối.


16
Tôi nghĩ rằng điều đáng nói là C-h k wtrong diredbộ đệm có nội dung "Với tiền tố bằng 0, hãy sử dụng tên tệp tuyệt đối của mỗi tệp được đánh dấu.", Tức là "nhấn C-0 wđể có đường dẫn tuyệt đối."
Constantine

@Constantine: Điểm tốt. Tôi cập nhật câu trả lời để đề cập đến điều này.
vẽ

5
@Constantine: bạn có thể sử dụng "0 w" (nó giống với "C-0 w" trong bộ đệm được điều hướng)
jfs

Trong chế độ chuyển hướng, sử dụng "C-0 w". Bản sao này đường dẫn đầy đủ (đường dẫn + tên tệp) để hủy vòng.
a_subscacker

1

Tôi đặt x-select-enable-clipbardthành tnhư đề xuất nhưng nó không hoạt động. Tôi sử dụng đoạn mã này từ đây: http://blog.binchen.org/posts/copy-file-name-or-full-path-of-file-in-emacs-dired-buffer-into-system-clipboard .html

;; {{ copy the file-name/full-path in dired buffer into clipboard
;; `w` => copy file name
;; `C-u 0 w` => copy full path
(defadvice dired-copy-filename-as-kill (after dired-filename-to-clipboard activate)
  (with-temp-buffer
    (insert (current-kill 0))
    (shell-command-on-region (point-min) (point-max)
                             (cond
                              ((eq system-type 'cygwin) "putclip")
                              ((eq system-type 'darwin) "pbcopy")
                              (t "xsel -ib")
                              )))
  (message "%s => clipboard" (current-kill 0))
  )
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.