【问题标题】:How can I copy paste from EMACS [terminal mode] to another application without MOUSE?如何在没有鼠标的情况下将粘贴从 EMACS [终端模式] 复制到另一个应用程序?
【发布时间】:2021-09-23 09:02:21
【问题描述】:

我使用 GNU Emacs 25.1.1。我在终端模式下使用它。 在 GUI 模式下,我知道如何复制和拉动。在终端模式下,从另一个应用程序复制和粘贴有效,但不是通常的键绑定。

通常 C-y 用于在 emacs 中拉动,但在我的终端模式下 C-Shift-V 仅用于拉动。

但是当我尝试从 emacs 复制到另一个 shell 或应用程序时,它不会复制。

我不想用鼠标来复制和拉扯.. 有什么解决方法吗?我究竟做错了什么?

【问题讨论】:

    标签: emacs


    【解决方案1】:

    在“终端模式”下,您并没有真正与 emacs 进行交互。您正在与终端或终端模拟器进行交互。

    当您发送 copypaste 文本时,终端会执行此操作:您获取的是终端显示的文本,而不是您的 emacs 应用程序中的文本。

    这就是您必须使用终端键绑定的原因:Ctrl-Shift-CCtrl-Shift-V 来复制和粘贴文本。

    这也是为什么在 emacs 中通过终端粘贴大文本很慢的原因:终端“获取”文本并将其“重定向”到 emacs。

    因此,如果您想在不使用鼠标的情况下选择、复制和粘贴文本,则必须配置您的终端。

    Here's an example

    【讨论】:

      【解决方案2】:

      您可能想尝试xclip-mode(可从 GNU ELPA 获得),它依赖外部程序(X11 下为 xclip,macOS 上为 pbcopy)让 Emacs 与您的 GUI 通信(例如 C-yC-k),即使它在文本终端中运行。

      【讨论】:

      • 如果X11没有开启,启用xclip-mode会导致粘贴操作慢几秒钟,如果自动禁用它是否可以阻止它?
      • @alper" 这似乎超出了主题。请改为提交错误报告。
      【解决方案3】:

      我通过在我的 macOS 机器上使用 shell-command-on-region 和命令行 pbpaste/pbcopy 来做到这一点。如有必要,将其绑定到密钥:

      (global-set-key "\C-cr" (shell-command-on-region (point) (mark) "pbcopy"))
      

      您可以在 Windows (https://github.com/ghuntley/pasteboard) 和 Linux (xsel/xclip) 上使用类似的命令行程序。

      【讨论】:

        【解决方案4】:

        有一个名为 clipetty 的包可以使用来自 tty 的 emacs 操作系统剪贴板。

        配置很简单,在你的init文件中添加以下两行。

        (require 'clipetty)
        (global-clipetty-mode)
        

        然后,每次您杀死或拉动某些东西时,您的系统剪贴板也会被覆盖。

        要粘贴到 emacs,您可以使用终端键绑定 Ctrl-Shift-V

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-13
          • 2023-03-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多