다른 해결책은 가능하면 cli 도구를 사용하는 것입니다.
이 솔루션의 장점은 클립 보드를 항상 사용할 수 있다는 것입니다 (예 : 원격 ssh 일 때).
내 대답에는 두 부분이 있습니다. 1 부에서는 클립 보드를 조작하는 편리한 도구를 소개합니다. 두 번째 부분은 원래 질문에 대답합니다 (클립 보드를 킬 링에 저장).
1 부
~ / .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)
))