【问题标题】:How to copy text from emacs in one screen session to emacs in another screen session in terminal如何将文本从一个屏幕会话中的 emacs 复制到终端中另一个屏幕会话中的 emacs
【发布时间】:2014-04-05 02:34:51
【问题描述】:
在我的大部分工作中,我在 SSH 的屏幕中使用 emacs,并且希望能够将文本从一个会话复制到另一个会话。我目前是用鼠标选择的,但是这有问题,原因有以下三个:
- 间距经常被弄乱,尤其是标签
- 我必须暂时退出竖屏分割进行复制(以免另一半也被复制)
- 我不能复制超过一个垂直屏幕的文本
当然,它要求我把手从键盘上移开,从而减慢了我的速度。有没有办法使用类似于 emacs kill-ring buffers 的命令在屏幕会话之间通过键盘粘贴?
【问题讨论】:
标签:
emacs
terminal
copy
gnu-screen
【解决方案1】:
我已经多年没有使用屏幕了,所以我不能给你一个基于屏幕的答案,但是你可以尝试其他的东西:
如果 emacs 在同一台机器上,请在守护程序模式下使用 emacs,并使用 emacsclient。您可以在多个屏幕会话中拥有相同的 emacs 会话。由于它是同一个 emacs 会话,因此杀伤环是相同的,并且剪切和粘贴是微不足道的(您的 3 个问题已解决)。如果文件在不同的主机上,只需通过 ssh 在一台主机上的同一个 emacs 会话中打开它们(emacs 可以使用tramp 打开远程文件)。
使用 tmux 代替屏幕。它更具脚本性和可配置性。您可以在 tmux 中使用复制模式来复制和粘贴 tmux 缓冲区,您可以使用类似 emacs 的组合键进行选择。虽然这些缓冲区可能跨越多个“tmux 页”,但复制模式无法滚动 emacs 缓冲区(它滚动 tmux 缓冲区)。所以这并不能解决你的#3 问题。
创建一个 emacs 键绑定以将一个文件区域“粘贴”到一个临时文件 (write-region) 中并从同一个文件文件中读取另一个文件。