emacs - 如何在 Windows 上的 Emacs 中保留剪贴板内容?

标签 emacs elisp

这是我遇到过几次的场景:

我从其他程序复制了一些文本。转到 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/

相关文章:

emacs - 标记区域并插入前缀

function - Elisp 函数返回值

Emacs -- 在 Emacs lisp 中定时执行函数调用

emacs - 在 GNU Emacs 24 上重做+.el

正则表达式(PCRE 或 Emacs): Repetition of previously defined group

html - 在 org-mode 中,如何为 HTML 导出插入当前日期?

r - 如何自动化这些 emacs ESS (ess-remote) 命令?

emacs - 安装 YASnippet

emacs - 写入主模式 : how set different start string and end string character?

emacs - 如何获得给定emacs命令的键盘快捷键?