You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让WSL Ubuntu中的Vim调用Windows剪贴板?

解决WSL Ubuntu下Vim与Windows剪贴板交互的问题

我之前在Win10的WSL Ubuntu里折腾Vim剪贴板的时候,也碰到过和你一模一样的情况——明明装了带+xterm_clipboard的vim-gtk,设了set clipboard=unnamedplus,但各种复制粘贴操作就是不生效。后来试了几个办法终于搞定了,给你分享下:

1. 先确认Vim的剪贴板支持是否完整

先打开Vim,输入:version,看看输出里有没有+clipboard和+xterm_clipboard这两个标识。如果只有-clipboard,那哪怕装了vim-gtk也可能是没正确配置,这种情况可以先重新安装vim-gtk:

sudo apt remove vim-gtk
sudo apt install vim-gtk

安装完再重新检查版本,确保两个加号都存在。

2. 配置Vim使用Windows剪贴板工具(win32yank)

WSL本身和Windows剪贴板的交互需要一个中间工具,win32yank.exe是最常用的。你可以直接从WSL里下载它:

curl -sLo /tmp/win32yank.zip https://github.com/equalsraf/win32yank/releases/latest/download/win32yank-x64.zip
unzip -p /tmp/win32yank.zip win32yank.exe > /usr/local/bin/win32yank.exe
chmod +x /usr/local/bin/win32yank.exe

然后在你的~/.vimrc里添加以下配置,让Vim用这个工具来处理剪贴板:

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

保存退出后重启Vim,试试用yy复制一行,然后到Windows的记事本里粘贴,应该就能生效了;反过来从Windows复制内容,在Vim里按p也能粘贴。

3. 针对WSL 2的额外注意事项

如果你的WSL是版本2,要确保Windows 10的版本在2004(内部版本19041)及以上,这个版本之后WSL 2才支持剪贴板的原生集成。如果版本不够,建议先升级系统。另外,有时候需要确保WSL的剪贴板服务在运行,可以试试重启WSL:

wsl --shutdown

然后重新打开Ubuntu终端。

4. 避免X Server的坑(如果用了图形化Vim)

如果你是通过X Server(比如VcXsrv)运行vim-gtk的图形界面,要确保X Server启动时勾选了“Disable access control”选项,不然Vim可能没有权限访问剪贴板。而且要把DISPLAY环境变量正确设置,一般WSL里会自动设置,但如果没生效,可以手动在终端里输入:

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0

然后再启动vim-gtk试试。

试完这些步骤,应该就能让Vim和Windows剪贴板顺畅交互了。

内容的提问来源于stack exchange,提问作者dman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:19:18