WSL2 中 nvim 的复制粘贴和 Windows 不共享剪贴板
三个剪贴板
Windows 一个,X selection 一个,Wayland 一个。
安装 wl-clipboard 包可以获得 wl-copy
和 wl-paste
工具,它们操作 Wayland 剪贴板。
安装 xclip 可以获得 xclip
工具,xclip
或 xclip -i
类似 wl-copy
,完成复制功能,xclip -o
完成粘贴功能。它操作的是 X selection。
现象描述
在 Windows 上复制文本,可以写入 Wayland 剪贴板和 Windows 剪贴板,不能写入 X selection。
在 nvim
中选中文本,用 "+y
复制到 "+
寄存器,可以写入 Wayland 剪贴板,不能写入 Windows 剪贴板和 X selection。
Tip
查看能不能写入 X selection 或者 Wayland 剪贴板可以分别用 xclip -o
和 wl-paste
看看输出。
难道是因为我安装了 wslg,所以 WSL 上默认的剪贴板变成了 Wayland 剪贴板?
解决方案
参考 https://stackoverflow.com/a/67229362/ ,先在 Windows 上安装 win32yank.exe
(scoop
和 choco
都能安装),然后在 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,
\ }