สมมติว่าเรามีบัฟเฟอร์ Dired เปิดในบางไดเรกทอรี ฉันจะส่งเส้นทางไดเรกทอรีไปยังคลิปบอร์ดได้อย่างไร
นอกจากนี้ฉันจะทำเช่นเดียวกันได้อย่างไรเมื่อเคอร์เซอร์ Dired อยู่ในไฟล์ที่ระบุโดยไม่ต้องเปิดไฟล์ก่อน
สมมติว่าเรามีบัฟเฟอร์ Dired เปิดในบางไดเรกทอรี ฉันจะส่งเส้นทางไดเรกทอรีไปยังคลิปบอร์ดได้อย่างไร
นอกจากนี้ฉันจะทำเช่นเดียวกันได้อย่างไรเมื่อเคอร์เซอร์ Dired อยู่ในไฟล์ที่ระบุโดยไม่ต้องเปิดไฟล์ก่อน
คำตอบ:
เลื่อนเคอร์เซอร์ไปที่สายหัวไดเรกทอรี (ที่ไดเรกทอรีจะแสดง - เช่นการใช้งานM-<
) w
ตีแล้ว ที่คัดลอกชื่อไดเรกทอรีไปยัง kill ring ( w
คัดลอกชื่อไฟล์ใด ๆ จาก Dired และทำงานให้กับส่วนหัวของไดเรกทอรีด้วย)
และหากคุณยังไม่ได้ดำเนินการให้ปรับแต่งx-select-enable-clipboard
เป็นไม่ใช่nil
ดังนั้นการเลือกจะถูกคัดลอกไปยังคลิปบอร์ด
@ ความคิดเห็นของคอนสแตนติทำให้เป็นจุดที่ดี แทนที่จะย้ายไปยังบรรทัดส่วนหัวของไดเรกทอรีเพื่อรับชื่อแบบสัมบูรณ์คุณสามารถใช้C-0 w
กับไฟล์หรือไดเรกทอรีบรรทัดใดก็ได้ ที่จะใส่ชื่อไฟล์สัมบูรณ์ในคลิปบอร์ด เมื่อคุณวางมันคุณก็สามารถลบส่วนชื่อไฟล์ที่เกี่ยวข้องเพื่อรับชื่อไดเรกทอรีแน่นอน
ผมตั้ง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))
)
C-h k w
ในdired
บัฟเฟอร์บอกว่า "ด้วยคำนำหน้าศูนย์ให้ใช้ชื่อไฟล์สัมบูรณ์ของแต่ละไฟล์ที่ทำเครื่องหมาย" คือ "กดC-0 w
เพื่อรับพา ธ สัมบูรณ์"