【问题标题】:In Emacs, how can I paste into multi-term在 Emacs 中,我如何粘贴到多项中
【发布时间】:2012-01-04 15:35:43
【问题描述】:

当在 emacs 中使用 multi-term 运行终端时,我希望能够将命令粘贴到 multi-term 窗口中,然后运行它。目前,当我这样做时,粘贴的项目确实出现在多词输入窗口中,但是,如果我按 Enter 键,该命令将被忽略。它也没有出现在终端的历史记录中。比如我在粘贴

回声“你好”

看起来它起作用了——我看到了提示后面的文字。但是,当我按 Enter 时,它不会执行。我正在使用多词:http://www.emacswiki.org/emacs/MultiTerm

【问题讨论】:

    标签: emacs


    【解决方案1】:

    默认函数yank不适用于multi-term或更多 正是 term-mode 因为 yank 没有“真正”插入。 要粘贴,您必须使用绑定到的函数term-paste S-insert 默认情况下。当然可以绑定 C-yterm-mode中使用它

    (add-hook 'term-mode-hook (lambda ()
                                (define-key term-raw-map (kbd "C-y") 'term-paste)))
    

    【讨论】:

    • 我将它添加到我的 .emacs 中,但没有任何乐趣。
    • @ebeland:我已经用-q 尝试过它并且它有效,因此您的配置一定有问题。尝试一下:emacs -q 然后切换到*scratch* 缓冲区并粘贴(或写入)之前的 sn-p 并评估它(使用C-x C-eM-x eval-buffer RET)然后加载multi-term.el 并开始一个新学期M-x multi-term.
    • 我会在星期一进去的时候试一试。谢谢你的帮助!
    • 我需要的关键信息是term-raw-map not term-mode-map
    【解决方案2】:

    在 term-mode(multi-term 使用)中有两种输入模式:

    • 线路模式
    • 字符模式

    您可以使用 C-cC-j 切换到线路模式,然后 拉出文本,切换回字符模式 C-cC-k 并运行命令。我认为 char-mode 是有效的输入模式 就像您期望终端输入正常工作一样。例如,如果您键入 命令行上的东西并用 C-x 剪切它,然后 C-y 将粘贴您从命令行剪切的内容。我认为 行模式作为您期望从文本中获得的输入模式 emacs 中的缓冲区。

    有关两种输入模式的详细信息,请查看 this page

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 2011-02-22
      • 1970-01-01
      相关资源
      最近更新 更多