WSL2 中 nvim 的复制粘贴和 Windows 不共享剪贴板

三个剪贴板

Windows 一个,X selection 一个,Wayland 一个。

安装 wl-clipboard 包可以获得 wl-copywl-paste 工具,它们操作 Wayland 剪贴板。

安装 xclip 可以获得 xclip 工具,xclipxclip -i 类似 wl-copy,完成复制功能,xclip -o 完成粘贴功能。它操作的是 X selection。

现象描述

在 Windows 上复制文本,可以写入 Wayland 剪贴板和 Windows 剪贴板,不能写入 X selection。

nvim 中选中文本,用 "+y 复制到 "+ 寄存器,可以写入 Wayland 剪贴板,不能写入 Windows 剪贴板和 X selection。

Tip

查看能不能写入 X selection 或者 Wayland 剪贴板可以分别用 xclip -owl-paste 看看输出。

难道是因为我安装了 wslg,所以 WSL 上默认的剪贴板变成了 Wayland 剪贴板?

解决方案

参考 https://stackoverflow.com/a/67229362/ ,先在 Windows 上安装 win32yank.exescoopchoco 都能安装),然后在 neovim 配置中新增:

let g:clipboard = {
      \   'name': 'win32yank-wsl',
      \   'copy': {
      \      '+': '/path-file/win32yank.exe -i --crlf',
      \      '*': '/path-file/win32yank.exe -i --crlf',
      \    },
      \   'paste': {
      \      '+': '/path-file/win32yank.exe -o --lf',
      \      '*': '/path-file/win32yank.exe -o --lf',
      \   },
      \   'cache_enabled': 0,
      \ }