vscode 连 wsl2 无需 ssh 或手动配置,装好 remote - wsl 扩展并确保 wsl2 启动即可一键连接;code 命令需在 windows 安装时勾选“add to path”或运行 code --install-server 修复;项目必须放在 wsl 原生路径(如 /home/yourname/project)而非 /mnt/c/;需配置 wsl locale 为 utf-8 并在 vscode 中设 files.encoding 为 utf8;c/c++、python 等插件必须点击“install in wsl”而非本地安装。

VSCode 能直接连 WSL2,不需要 SSH、不用改配置文件、也不用手动启服务——只要 Remote - WSL 扩展装对了,WSL2 已启动,Windows 版 VSCode(非 Web 版)点一下就进。
code 命令在 WSL 终端里不生效?先检查 PATH 注册
你在 WSL 的 bash 里敲 code .,提示 command not found,或者弹出 VSCode 却没打开当前目录——根本原因是 Windows 端的 code 命令没注册进 WSL 的 PATH。
- 安装 VSCode 时务必勾选“Add to PATH”(安装器“其他任务”页),否则
code命令只存在于 Windows,不会自动暴露给 WSL - 已安装但漏选?重装或手动修复:在 Windows PowerShell 中运行
code --install-server,再执行wsl --shutdown,重启 WSL 终端 - 验证是否成功:在 WSL 终端中运行
which code,应返回类似/mnt/wslg/code或/usr/local/bin/code的路径;运行code --version能输出版本号才算到位
打开项目总乱码或断点失效?别碰 /mnt/c/
把项目放在 /mnt/c/Users/xxx/project 这类路径下开发,是绝大多数编码异常、Git 日志中文变 425、调试断点灰掉的根源。drvfs 驱动不支持 inode 一致性、权限位和实时文件通知。
- 所有开发必须在 WSL 原生文件系统下进行:比如
/home/yourname/project - 从 Windows 端访问项目,用
\wsl$\Ubuntu\home\yourname\project(注意反斜杠,这是 Windows 资源管理器识别的挂载路径) - VSCode 内打开项目时,不要用“文件 → 打开文件夹”去选
/mnt/c/...,而要用命令面板Ctrl+Shift+P→ 输入WSL: Open Folder in WSL,再选/home/...路径
中文显示异常、git log 乱码?locale 和 VSCode 编码要双锁
WSL 默认 locale 是 C 或 POSIX,导致 Git、Python、Shell 工具内部全按 ASCII 解析字节流,中文直接崩成八进制转义串。
- 编辑
/etc/wsl.conf,加入以下内容并保存:[boot] command = "sudo /usr/bin/locale-gen en_US.UTF-8 zh_CN.UTF-8" [user] default = yourusername [automount] enabled = true options = "metadata,uid=1000,gid=1000,umask=022,fmask=111"
- 执行
wsl --shutdown,重启终端后运行locale -a | grep utf8,确认输出含zh_CN.utf8 - VSCode 设置里搜索
files.autoGuessEncoding,设为false;再搜files.encoding,设为utf8
扩展装在哪?C/C++、Python 插件必须“Install in WSL”
本地装的插件默认只跑在 Windows 端,对 WSL 里的编译器、解释器、调试器一无所知。IntelliSense 补全失效、gdb 找不到、python -m debugpy 启动报错,基本都卡在这步。
- 打开 VSCode 扩展面板(
Ctrl+Shift+X),搜C/C++或Python - 找到 Microsoft 官方扩展后,**不要点“Install”**,要点右下角的
Install in WSL按钮(不是“Install on Remote”或“Install for All Users”) - 装完需重启 VSCode 窗口(不是重载窗口),状态栏左下角显示
WSL: Ubuntu才算真正生效
最常被跳过的其实是 locale 配置和 Install in WSL 操作——这两处一漏,后面所有调试、补全、中文支持都会变成玄学问题,而不是配置没生效。











