这是我碰到几次的情况:
我从其他程序复制一些文本。去Emacs并做一些编辑,然后我粘贴/ yank文本。Cy to yank和嗯…不是我打算粘贴的文本。然后我意识到,当我移动的东西,我使用像kill-线条和反向杀死字,那些杀死的线条和话语现在占领了杀戮戒指。但是键入M-y并不会将原始的复制文本带回来,所以我需要回到我原来的程序来再次复制文本。而最糟糕的是,如果原始程序关闭,那么我完全丢失了复制的文本。
杀戮线等等都是基本的命令(比如敲几键),而我不介意使用这些命令使得kill-ring变得有点混乱,我希望我的原文保持在某处杀死戒指,以便我最终可以通过键入我的几次找到它。如何使Emacs在覆盖剪贴板内容之前自动将当前剪贴板内容保存到kill-ring中?
这个代码应该自动将选择(从Emacs外部)放到kill-ring上,当你在Emacs中杀死时。它已经在Linux上进行了测试,但不应该局限于Linux。
原文链接:https://www.f2er.com/windows/372400.html(defadvice kill-new (before kill-new-push-xselection-on-kill-ring activate) "Before putting new kill onto the kill-ring,add the clipboard/external selection to the kill ring" (let ((have-paste (and interprogram-paste-function (funcall interprogram-paste-function)))) (when have-paste (push have-paste kill-ring))))
如果你发现自己这样做很多,看看包browse-kill-ring可能是有用的,它为你提供了一个很好的杀死戒指的视图(而不是重复键入M-y)。