อีกวิธีคือใช้เครื่องมือ cli ถ้าเป็นไปได้
ข้อดีของการแก้ปัญหานี้คือคลิปบอร์ดสามารถใช้งานได้เสมอ (ตัวอย่างเช่นเมื่อคุณรีโมต ssh)
คำตอบของฉันมีสองส่วน ส่วนหนึ่งแนะนำเครื่องมือที่มีประโยชน์บางอย่างเพื่อจัดการคลิปบอร์ด ส่วนที่สองจะตอบคำถามเดิมของคุณ (เก็บคลิปบอร์ดไว้ในแหวนฆ่า)
ส่วนหนึ่ง
ใส่รหัสด้านล่างลงใน ~ / .emacs ของคุณ:
(setq *is-a-mac* (eq system-type 'darwin))
(setq *cygwin* (eq system-type 'cygwin) )
(setq *linux* (or (eq system-type 'gnu/linux) (eq system-type 'linux)) )
(defun copy-to-x-clipboard ()
(interactive)
(if (region-active-p)
(progn
(cond
((and (display-graphic-p) x-select-enable-clipboard)
(x-set-selection 'CLIPBOARD (buffer-substring (region-beginning) (region-end))))
(t (shell-command-on-region (region-beginning) (region-end)
(cond
(*cygwin* "putclip")
(*is-a-mac* "pbcopy")
(*linux* "xsel -ib")))
))
(message "Yanked region to clipboard!")
(deactivate-mark))
(message "No region active; can't yank to clipboard!")))
(defun paste-from-x-clipboard()
(interactive)
(cond
((and (display-graphic-p) x-select-enable-clipboard)
(insert (x-selection 'CLIPBOARD)))
(t (shell-command
(cond
(*cygwin* "getclip")
(*is-a-mac* "pbpaste")
(t "xsel -ob"))
1))
))
(defun my/paste-in-minibuffer ()
(local-set-key (kbd "M-y") 'paste-from-x-clipboard)
)
(add-hook 'minibuffer-setup-hook 'my/paste-in-minibuffer)
ส่วนที่สอง
แทรกรหัสด้านล่างลงใน ~ / .emacs ของคุณและจากนี้ไปใช้ "Mx paste-from-clipboard-and-cc-kill-ring" เพื่อวาง:
(defun paste-from-clipboard-and-cc-kill-ring ()
"paste from clipboard and cc the content into kill ring"
(interactive)
(let (str)
(with-temp-buffer
(paste-from-x-clipboard)
(setq str (buffer-string)))
;; finish the paste
(insert str)
;; cc the content into kill ring at the same time
(kill-new str)
))