通过ssh和tmux在服务器上用emacs,如何如何把远程的内容粘贴到本地?

我目前用的是spacemacs已经配置好的xclip包,通过x11实现了本地的windows剪切板和远程的linux剪切板的互操作。

比较难受的一点是,x11比较容易中断,大家有更好的解决方案没有?

你用vterm 吗, 用的话 可以 (setq-default vterm-enable-manipulate-selection-data-by-osc52 t)

有可能需要在tmux.conf中 加入

set -ga terminal-overrides ',xterm*:XT:Ms=\E]52;%p1%s;%p2%s\007'
set -ga terminal-overrides ',screen*:XT:Ms=\E]52;%p1%s;%p2%s\007'
set -s set-clipboard on         #osc 52 copy paste share with iterm

然后你用 tmux 中的快捷键选中某段区域后, 就会自动copy到你本地的剪切板了。

不过vterm 不支持windows

不过windows terminal 似乎是支持 osc 52 的 https://github.com/microsoft/terminal/issues/2946 可以了解下 osc 52 tmux in practice: integration with the system clipboard | by Alexey Samoshkin | We’ve moved to freeCodeCamp.org/news | Medium

2 个赞

我的建议是 通过ssh 隧道转发vnc 通过vnc进行图形化交互

可以试试我写的这个小工具: GitHub - ybyygu/sbfiles: Copy/paste files using terminal scrollback buffer

这根直接通过ssh转发x11不是一样的效果?

支持[quote=“jixiuf, post:2, topic:23085”] osc 52 [/quote]的终端还挺多的,不一定用vterm吧

是的。zsbd

鼠标选中复制,本地粘贴。。。

超过一个屏幕的内容就比较麻烦了

不一样的 vnc占用带宽较低

那根直接用vnc链接呢?

vnc 不建议直接暴露在公网上 虽然可以用自签名ca证书 但并不推荐. 默认的vnc不是安全的连接 平常都是建议使用防火墙屏蔽.只开ssh端口,通过隧道使用的.

terminal: 使用支持 OSC52 的 terminal 见 list or list

doomemacs: init.el 里打开 (tty +osc)。或参考 doom 的配置 使用 clipetty 包

tmuxset -g set-clipboard on。参考 wiki

vim:使用 vim-oscyank

5 个赞

奇怪 我配置好了以后

本地运行 Emacs 复制成功

本地tmux + 本地Emacs 复制失败

远程tmux + 远程Emacs 复制成功

这是哪里设置错了

我这里也是这样的错误。 我这里macos本地tmux中的emacs 无法copy到系统剪切板。

本地单独emacs 可以到系统剪切板 本地tmux中copy也可以 同样的emacs tmux配置,windows term 连远程linux 都可以

各位有解决办法了么?

昨天折腾半天找到了办法