进系统剪切板的操作太多了,如何只取M-w的进系统剪切板,其他不进

emacs编辑期间,各种操作都会进kill ring,在emacs里用着很方便。

如果(setq select-enable-clipboard t),这些操作也都进系统剪切板,但内容太多会把系统剪切板搞得很乱。

如果(setq select-enable-clipboard nil),就完全没有剪切板共享了。

如何只保留M-w进系统剪切板,其他操作不进?

  • 只进kill ring,不进系统剪切板:C-w (kill-region) M-d (kill-word) M-Backspace (backward-kill-word) M-k (kill-sentence) C-k (kill-line)

  • 进kill ring,进系统剪切板:M-w (kill-ring-save)

(setq select-enable-clipboard nil)

(defun sync-system-kill-ring-save (beg end &optional region)
  (interactive (list (mark) (point) 'region))
  (let ((select-enable-clipboard t))
    (kill-ring-save beg end region)))

(bind-key "M-w" #'sync-system-kill-ring-save)
4 个赞