інше рішення - просто використовувати інструмент 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)
))