i使用gnu emacs 25.1.1。我在终端模式下使用它。在GUI模式下,我知道如何复制和拉动。在终端模式下,从另一个应用程序复制和粘贴起作用,但不使用通常的键键。
通常, c-y 用于内部emacs内部,但在我的终端模式下 c-shift-v 仅适用于拉力。
但是,当我尝试从emacs复制到另一个外壳或应用程序时,它不会复制。
我不想使用鼠标复制和拉力。有解决方法吗?我究竟做错了什么?
在"终端模式"中,您并没有真正与Emacs进行交互。您正在与终端或终端模拟器进行互动。
当您 copy
和 paste
文本时,终端会这样:您正在使用终端显示的文本,而不是emacs应用中的文本。
这就是为什么您必须使用终端键键: ctrl-shift-c 和 ctrl-shift-v 复制和粘贴文本。
这也是为什么在emacs中粘贴大型文本的原因很慢:终端"获取"文本和"重定向"。
因此,如果您想在没有鼠标的情况下选择,复制和粘贴文本,则必须配置终端。
这是一个示例
您可能想尝试使用xclip-mode
(可从GNU ELPA获得),该con依赖于外部程序(X11下的xclip
,MacOS上的CC_4),让Emacs与您的GUI进行通信(对于之类的东西 c-y 和 c-k )即使它在文本终端中运行。
我通过在我的MacOS框上使用shell-command-on-region
与命令行pbpaste
/pbcopy
一起这样做。如有必要,将其绑定到键:
(global-set-key "C-cr" (shell-command-on-region (point) (mark) "pbcopy"))
您可以使用类似的命令行程序(https://github.com/ghuntley/pasteboard)和Linux(xsel
/xclip
)。
有一个称为 clipetty
的软件包,可以用tty的emacs操纵系统剪贴板。
配置很简单,在您的初始文件中添加以下两行。
(require 'clipetty)
(global-clipetty-mode)
然后,每次您杀死或拉动东西时,您的系统剪贴板也会被覆盖。
要粘贴到emacs,您可以使用终端键键 ctrl-shift-v 。