这是我遇到过几次的场景:
我从其他程序复制了一些文本。转到 Emacs 并在粘贴/拉出文本之前进行一些编辑。C-y 拉出并瞧...不是我打算粘贴的文本。然后我意识到,当我四处移动东西时,我使用了诸如kill-之类的命令行和向后杀字,而那些被杀的行和字现在占据了杀环。但是输入 M-y 不会带回原始复制的文本,因此我需要返回到原始程序再次复制文本。更糟糕的是,如果原始程序被关闭,那么我会完全丢失复制的文本。
Kill-line 等都是基本命令(几乎就像按删除键一样),虽然我不介意使用这些命令使 Kill-ring 变得有点困惑,但我希望我的原始文本停留在杀戮环中的某个地方,这样我最终可以通过输入 M-y 几次找到它。如何让 Emacs 在覆盖剪贴板内容之前自动将当前剪贴板内容保留到终止环中?
最佳答案
每当您在 Emacs 中执行终止操作时,此代码都会自动将选择(来自 Emacs 外部)放入终止环中。它已在 Linux 上进行了测试,但不应仅限于 Linux。
(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
)。
关于emacs - 如何在 Windows 上的 Emacs 中保留剪贴板内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/848936/