在终端缓冲区中工作时如何将文本复制到 emacs 中的系统剪贴板?

How to copy text to system clipboard in emacs while working in terminal buffer?

我通常在文本终端环境中使用 emacs 来操作文本。然而,在某些特定情况下,我想与系统的剪贴板进行交互,例如,将文本从 emacs 复制到网站。是否可以直接从 emacs 将文本复制到系统的剪贴板?怎么样?

emacs 中的终端只是一个缓冲区。如果您是使用 eshell 的 运行 终端,您可以像在普通缓冲区中一样使用 M-w 直接复制到剪贴板。

如果您是 运行 使用 ansi-term 的终端,yanking/copying 有点棘手。您需要使用 C-c C-j 转到 term-line-mode 复制您想要的任何内容,然后使用 C-c C-k 返回 term-char-mode。有关详细信息,请参阅 this answer

在 Emacs-25 中支持这样做(请参阅新闻文件,寻找 xterm-extra-capabilities),但这取决于您的终端仿真器提供相应的支持,这显然通常默认情况下是禁用的,所以您还需要配置您的终端模拟器。

另一种选择是安装 xclip 软件包,它在 GNU ELPA 上可用。

这篇文章(http://blog.binchen.org/posts/copypaste-in-emacs.html)对我有帮助。在其中,作者实现了一个功能来完成这样的任务。