ssh下使用nvim复制到系统剪切板
在DE环境下使用ssh复制到系统剪切板十分方便,在WM却十分蛋疼…..ssh下使用终端下的文本编辑器不搞定复制问题可以说是痛不欲生了
在neovim中有多种解决系统剪切板的方案,可以用:help provider-clipboard
查看解决官方提供的方法。本文将使用xsel
和xclip
解决这个问题
一、思路
nvim不直接连接系统剪辑板,首先需要安装xsel
和xclip
之后在nvim配置文件加入set clipboard+=unnamedplus
这一行以配置完成nvim连接本地系统剪切板
xsel
和xclip
是运行在x服务上的软件,在x服务器上显然是可以使用的。ssh服务器提供x转发,所以可以在远程服务器上使用这两款软件,再利用x转发到本地x服务器以获取远程服务器上nvim复制的内容到本地剪辑板
但是事情并没有这么简单,即使开启ssh的x转发,本地x服务器能使用远程服务器的x软件了,但是远程nvim的内容还是死活复制不上。经过一轮搜索,发现其中还有一个叫xhost
的x服务使用的认证软件
xhost
是一个适用于单用户环境的为x服务器提供隐私控制和安全措施的软件。他有一个表来控制使用x服务器的客户端,以使得本地软件更安全。也就是说x转发过程中,除了ssh认证以外,x服务器本身也有一个认证
而ssh客户端配置中有一个叫ForwardX11Trusted
的选项,对应参数-Y
。指定这个参数将信任远程x客户端,即远程客户端将不再通过x服务器的认证
此方法有安全风险,建议在安全可控的环境下使用
参考:
x11 - ssh, is better to use -X or -Y? - Unix & Linux Stack Exchange
x11 - What does this
xhost ...
command do? - Unix & Linux Stack Exchange
二、配置
ssh客户端
添加以下配置到ssh客户端配置文件以跳过x认证
对于全局配置/etc/ssh/ssh_conf
:
1 | # 星号替换为需要配置的主机名或者ip,这是通配符 |
对于个人配置~/.ssh/config
:
1 | ForwardAgent no |
不配置ssh客户端而改为用xhsot添加指定远程主机到控制列表里也行
ssh服务端
安装x转发必要包及xsel
、xclip
:
1 | # 红帽为例 |
添加此行到/etc/ssh/sshd_config
:
1 | X11Forwarding yes |
然后编辑nvim配置文件,对于个人配置 ~/.config/nvim/init.vim
,对于全局配置$VIM/sysinit.vim
:
1 | # 添加这一行 |
自此,ssh客户端可使用远程nvim复制到本地剪辑板
- 标题: ssh下使用nvim复制到系统剪切板
- 作者: 7cmb
- 创建于 : 2023-12-27 14:13:12
- 更新于 : 2024-10-12 23:07:35
- 链接: https://7cmb.com/ssh下使用nvim复制到系统剪辑板/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。