เส้นทางปัจจุบันใน Dired หรือ Dired + ไปยังคลิปบอร์ด


18

สมมติว่าเรามีบัฟเฟอร์ Dired เปิดในบางไดเรกทอรี ฉันจะส่งเส้นทางไดเรกทอรีไปยังคลิปบอร์ดได้อย่างไร

นอกจากนี้ฉันจะทำเช่นเดียวกันได้อย่างไรเมื่อเคอร์เซอร์ Dired อยู่ในไฟล์ที่ระบุโดยไม่ต้องเปิดไฟล์ก่อน

คำตอบ:


25

เลื่อนเคอร์เซอร์ไปที่สายหัวไดเรกทอรี (ที่ไดเรกทอรีจะแสดง - เช่นการใช้งานM-<) wตีแล้ว ที่คัดลอกชื่อไดเรกทอรีไปยัง kill ring ( wคัดลอกชื่อไฟล์ใด ๆ จาก Dired และทำงานให้กับส่วนหัวของไดเรกทอรีด้วย)

และหากคุณยังไม่ได้ดำเนินการให้ปรับแต่งx-select-enable-clipboardเป็นไม่ใช่nilดังนั้นการเลือกจะถูกคัดลอกไปยังคลิปบอร์ด


@ ความคิดเห็นของคอนสแตนติทำให้เป็นจุดที่ดี แทนที่จะย้ายไปยังบรรทัดส่วนหัวของไดเรกทอรีเพื่อรับชื่อแบบสัมบูรณ์คุณสามารถใช้C-0 wกับไฟล์หรือไดเรกทอรีบรรทัดใดก็ได้ ที่จะใส่ชื่อไฟล์สัมบูรณ์ในคลิปบอร์ด เมื่อคุณวางมันคุณก็สามารถลบส่วนชื่อไฟล์ที่เกี่ยวข้องเพื่อรับชื่อไดเรกทอรีแน่นอน


16
ฉันคิดว่ามันควรค่าแก่การกล่าวถึงว่าC-h k wในdiredบัฟเฟอร์บอกว่า "ด้วยคำนำหน้าศูนย์ให้ใช้ชื่อไฟล์สัมบูรณ์ของแต่ละไฟล์ที่ทำเครื่องหมาย" คือ "กดC-0 wเพื่อรับพา ธ สัมบูรณ์"
Constantine

@ คอนสแตนติน: จุดดี ฉันอัพเดตคำตอบเพื่อพูดถึงสิ่งนี้
ดึง

5
@ คอนสแตนติน: คุณสามารถใช้ "0 w" (เป็นสิ่งเดียวกับ "C-0 w" ในบัฟเฟอร์ที่ dired)
jfs

ในโหมด dire ใช้ "C-0 w" คัดลอกพา ธ แบบเต็ม (ชื่อพา ธ + ไฟล์) เพื่อฆ่าริง
a_subscriber

1

ผมตั้งx-select-enable-clipbardเพื่อtเป็นข้อเสนอแนะ แต่มันก็ไม่ได้ทำงาน ฉันใช้โค้ดนี้จากที่นี่: 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))
  )
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.