首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在emacs ansi-term shell中复制/粘贴

在emacs ansi-term shell中复制/粘贴
EN

Stack Overflow用户
提问于 2010-05-22 07:15:15
回答 5查看 15.9K关注 0票数 58

我已经将emacs配置为在ansi-term中运行zsh shell。但是,复制/粘贴不再起作用,即没有任何内容从kill-ring粘贴到终端。将术语更改为vt100或eterm并不能解决问题。

将感谢任何想法或解决方案。

为了提供上下文,我对ansi-term进行了如下配置:

代码语言:javascript
复制
(global-set-key "\C-x\C-a" '(lambda ()(interactive)(ansi-term "/bin/zsh")))
(global-set-key "\C-x\ a" '(lambda ()(interactive)(ansi-term "/bin/zsh")))
EN

回答 5

Stack Overflow用户

发布于 2016-04-01 05:49:44

正如在this lovely blog snippet中所描述的,在term.el中有一个函数term-paste,它可以执行您想要的操作。默认情况下,它只绑定到S-insert,但博客推荐的C-c C-y似乎是一个很好的建议。

票数 14
EN

Stack Overflow用户

发布于 2010-05-22 09:12:52

char-mode中的ansi-term接受终端仿真的普通绑定。您需要一个新的绑定,以及一种正确输出到ansi-term的方法。我使用的是:

代码语言:javascript
复制
(defun ash-term-hooks ()
  ;; dabbrev-expand in term
  (define-key term-raw-escape-map "/"
    (lambda ()
      (interactive)
      (let ((beg (point)))
        (dabbrev-expand nil)
        (kill-region beg (point)))
      (term-send-raw-string (substring-no-properties (current-kill 0)))))
  ;; yank in term (bound to C-c C-y)
  (define-key term-raw-escape-map "\C-y"
    (lambda ()
       (interactive)
       (term-send-raw-string (current-kill 0)))))
  (add-hook 'term-mode-hook 'ash-term-hooks)

当你这样做的时候,C- C -y将会拉。它只做了一次,但是,你不能循环通过你的杀死缓冲区。这是可以做到的,但我还没有实现它。

票数 5
EN

Stack Overflow用户

发布于 2016-10-14 11:17:25

上面的解决方案可以很好地将文本从一些缓冲区复制到ansi-term,但它们不能将文本从ansi-term复制到另一个缓冲区(例如,将您刚刚运行的命令复制到您正在编辑的shell脚本)。将此代码添加到我的.emacs文件中为我解决了这个问题(在Emacs24.4中):

代码语言:javascript
复制
(defun my-term-mode-hook ()
  (define-key term-raw-map (kbd "C-y") 'term-paste)
  (define-key term-raw-map (kbd "C-k")
    (lambda ()
      (interactive)
      (term-send-raw-string "\C-k")
      (kill-line))))
(add-hook 'term-mode-hook 'my-term-mode-hook)

请注意,如果您希望将kill/yank绑定到以ansi术语转义字符(默认情况下为C-c和C-x)开头的击键,并希望在这些字符发生变化的情况下正常工作,则可以将击键(没有前导转义)定义为term-raw-escape-map,就像user347585的答案中所做的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2886184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档