lemonade: 在 ssh nvim 中使用剪切板

工具 2023-06-11 2030 字 975 浏览 点赞

在 neovim 中,已经对 clipboard 默认支持。如果你执行 :h clipboard,还能看到 nvim 贴心地为你提供不同平台需要的不同依赖说明。

- |g:clipboard|
- pbcopy, pbpaste (macOS)
- wl-copy, wl-paste (if $WAYLAND_DISPLAY is set)
- waycopy, waypaste (if $WAYLAND_DISPLAY is set)
- xclip (if $DISPLAY is set)
- xsel (if $DISPLAY is set)
- lemonade (for SSH) https://github.com/pocke/lemonade
- doitclient (for SSH) https://www.chiark.greenend.org.uk/~sgtatham/doit/
- win32yank (Windows)
- termux (via termux-clipboard-set, termux-clipboard-set)
- tmux (if $TMUX is set)

我一般是通过 ssh 登录到 VMware 启动的虚拟机中。这是前提。

猛一看,感觉 tmux 是最优解。即便我的终端切到 wezterm 之后使用 tmux 的频率已经大大降低,但毕竟是我的旧爱,我决定就它了。于是一番搜索加配置。这是过程。

剪切板正常可用,但使用 nvim 过程中会不断出现残影,我始终解决不了。这是结果。

023.6.11 补充:经过后续一番我自己也记不得细节的折腾之后,写本文准备复现残影现象,发现已经没有了。也许你可以先试试 tmux,如果你的环境上没有残影,下面的废话就不用看啦!!!(哭脸.jpg)


nvim 提供了两个方案:lemonade,doitclient。基于代码更新时间,我选择使用 lemonade

操作很简单,首先在我本地机 windows 系统上下载 lemonade,在 cmd 中执行:

lemonade.exe --port=2489 --line-ending="cr" server

然后,在我的远程机(虚拟机)arch linux 系统上下载 lemonade,并加入环境变量。同时设置对应的配置(~/.config/lemonade.toml):

port = 2489
host = '127.0.0.1'
trans-loopback = true
trans-localfile = true
line-ending = 'cr'

host 要求填写 lemonade server 所在 ip。如果是虚拟机还好,可以设置桥接模式(尽管我坚定不移的在NAT),否则本地的 ip 大概率是访问不通的。我用 ssh 做端口映射,将本机的 2489 映射到远程机的 2489,这样 host 填写 127.0.0.1 就 ok 啦。

测试 lemonade 是否正常可用,只需要在远端机执行 echo "hello word" | lemonade copy ,如果本机 ctrl + v 跳出了 “hello world” 说明已经成功。

为了偷懒,我把 windows 上要执行的命令写进 bat 文件,以后就可以愉快地点击使用了。

start ssh -CNTfR 2489:localhost:2489 [user]@[ip]
lemonade.exe --port=2489 --line-ending="cr" server

感谢:



本文由 Guan 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论