远程终端vim里使用系统剪切板

1、本地通过终端远程linux server,由于不是桌面环境/GUI,终端vim里似乎没办法直接使用系统剪切板,即便已经是+clipboard。

$ vim --version | grep clipboard
+clipboard         +keymap            +printer           +vertsplit
+eval              -mouse_jsbterm     -sun_workshop      +xterm_clipboard

2、通过X server/X client这个组合勉强可以实现,windows端2种方式开启X server:

  • MobaXterm/WindTerm自带X server,但是WindTerm Xserver开了之后,还是会遇到Can't open display的问题,没MobaXterm的X server智能
  • 安装Xming或其他X server软件

3、比较便捷的方式,vim里直接安装remote-copy.vim插件

.vimrc:

Plug 'Hanaasagi/remote-copy.vim'

vmap <C-c> y:call remote_copy#copy2clipboard(getreg('"'))<cr>

Visual模式下选中要复制的内容,ctrl-c实现复制copy。

copy2clipboard实做细节:会把当前终端vim reg ” 里的内容通过OSC52 encode,写到stdout fd里,这样再用鼠标或shift + insert就可以把标准输出的内容复制出来,以实现跨终端复制,或终端到文件的复制。

如果nvim的话可以用另一种方式:

init.lua加入:

vim.g.clipboard = {
  name = 'OSC 52',
  copy = {
    ['+'] = require('vim.ui.clipboard.osc52').copy('+'),
    ['*'] = require('vim.ui.clipboard.osc52').copy('*'),
  },
  paste = {
    ['+'] = require('vim.ui.clipboard.osc52').paste('+'),
    ['*'] = require('vim.ui.clipboard.osc52').paste('*'),
  },
}

 查看 : reg已经出现 *和+,进而用 y/p或鼠标实现跨终端复制粘贴。

参考:

https://github.com/Hanaasagi/remote-copy.vim

https://blog.csdn.net/m0_62396418/article/details/132195530

VIM与系统共用剪贴板_vim共享剪切板-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值