ฉันสามารถกำหนดค่าemacs
เพื่อให้ฉันสามารถคัดลอก / ตัดข้อความจาก emacs (เวอร์ชัน Terminal เริ่มต้น) และวางไว้ที่อื่น (ลงในโปรแกรม X Window)?
ฉันสามารถกำหนดค่าemacs
เพื่อให้ฉันสามารถคัดลอก / ตัดข้อความจาก emacs (เวอร์ชัน Terminal เริ่มต้น) และวางไว้ที่อื่น (ลงในโปรแกรม X Window)?
คำตอบ:
หากต้องการคัดลอกภูมิภาคปัจจุบันไปยังคลิปบอร์ด OS X คุณสามารถใช้
(shell-command-on-region (region-beginning) (region-end) "pbcopy")
ไม่แนะนำให้ใช้ผกผันคัดลอกบัฟเฟอร์ OS X ไปยังแหวนสังหาร Emacs วงแหวนฆ่าและคลิปบอร์ดเป็นโครงสร้างที่แตกต่างกันมากและไม่มีคำตอบที่ดีในการผลักคลิปบอร์ดเข้าไปในแหวนฆ่าควรทำอย่างไร ยังคุณสามารถเรียกใช้pbpaste
ด้วยตนเองเพื่อรับเนื้อหาของคลิปบอร์ดปัจจุบัน
เพิ่มไปที่~/.emacs
:
(defun pbcopy ()
(interactive)
(call-process-region (point) (mark) "pbcopy")
(setq deactivate-mark t))
(defun pbpaste ()
(interactive)
(call-process-region (point) (if mark-active (mark) (point)) "pbpaste" t t))
(defun pbcut ()
(interactive)
(pbcopy)
(delete-region (region-beginning) (region-end)))
(global-set-key (kbd "C-c c") 'pbcopy)
(global-set-key (kbd "C-c v") 'pbpaste)
(global-set-key (kbd "C-c x") 'pbcut)
หากคุณใช้ Emacs ใน iTerm 2 คุณยังสามารถทำการแมปชุดค่าผสมในการตั้งค่า:
จากนั้นเพิ่มสิ่งนี้ลงใน~/.emacs
:
(global-set-key (kbd "<f13> c") 'pbcopy)
(global-set-key (kbd "<f13> v") 'pbpaste)
(global-set-key (kbd "<f13> x") 'pbcut)
นี่คือวิธีการรวม OS X Clipboard เข้ากับ Emacs 'kill-ring โดย Daniel Nelson: https://github.com/wesen/emacs/blob/master/pbcopy.el
ความคิดเห็นของผู้เขียน:
เปิดใช้งาน kill-ring เพื่อโต้ตอบกับคลิปบอร์ดเมื่อเรียกใช้ Emacs จากเทอร์มินัล Mac OSX (โดยไม่สูญเสียฟังก์ชั่น kill-ring แบบเต็ม) ทั้งหมดที่ผมทำก็คือการปรับเปลี่ยน
xclip.el
การทำงานด้วยและpbcopy
pbpaste
ขอบคุณจริง ๆ ไปที่ Leo Shidai Liu ผู้เขียน xclip.el
งานต่อไปนี้ได้มาจากที่นี่ :)
(defun copy-from-osx ()
(shell-command-to-string "pbpaste"))
(defun paste-to-osx (text &optional push)
(let ((process-connection-type nil))
(let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
(process-send-string proc text)
(process-send-eof proc))))
(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx))
เวอร์ชั่นของ emacs ที่มาพร้อมกับ OS X นั้นเก่าเกินไปที่จะให้ฟังก์ชั่นนี้
โชคดีที่คุณสามารถอัปเดต emacs เป็นเวอร์ชันที่รวมเข้ากับคลิปบอร์ดของคุณได้ที่นี่: http://emacsformacosx.com
ฉันเชื่อว่าคุณใช้Ctrl+ Yเพื่อวางใน emacs หลังจากการอัปเดต
pbcopy
และpbpaste
เป็นทั้งแอปพลิเคชันเทอร์มินัล แอปเทอร์มินัลอื่น ๆ สามารถทำสิ่งที่พวกเขาทำหรือเพียงเรียกพวกเขาโดยตรง
pbcopy
กับการตัดและลอกเลียนแบบ เป็นไปได้ไหม?
ฉันพบว่าโพสต์นี้มีประโยชน์มาก (การกำหนด 2 ฟังก์ชันและกำหนดทางลัดให้กับพวกเขาในไฟล์ ~ / .emacs ของคุณ)
หลังจากเพิ่มบรรทัดเหล่านั้นในไฟล์. emacs ของคุณคุณจะไม่สามารถเข้าถึงทางลัดเหล่านั้นได้จนกว่าคุณจะเปิดเชลล์เซสชันใหม่ (แท็บ / หน้าต่าง) ปล่อยให้การเปลี่ยนแปลงถูกนำไปใช้
คุณจะได้รับการปฏิสัมพันธ์ดังกล่าวกับคลิปบอร์ดโปร่งใสในขณะที่ทำงาน Emacs ใน terminal ข้อความโดยการเปิดใช้งานxclip-mode
ให้โดยxclip
แพคเกจที่คุณสามารถติดตั้งจาก GNU ELPA (เช่นผ่านทางM-x package-list-packages RET
)
ดู/emacs/10900/สำหรับคำถามและคำตอบที่คล้ายกัน
/usr/bin/emacs
ไฟล์ปฏิบัติการโบราณที่แอปเปิ้ลรวมมาพร้อมกับ OSX และข้อ จำกัด ใดที่ จำกัด ไว้ที่เทอร์มินัลข้อความ?