notepad++ 无法直接访问 wsl 文件系统,必须通过 \wsl$\ 路径挂载;正确方式为在 wsl 终端执行 explorer.exe \\wsl$\... 后右键打开,或在 notepad++ 中 ctrl+o 粘贴完整 unc 路径(斜杠方向为,发行版名大小写敏感)。

Notepad++ 无法直接访问 WSL 文件系统,必须通过 \wsl$ 路径挂载
Notepad++ 是 Windows 原生 GUI 应用,不运行在 WSL 环境中,因此不能直接调用 wslpath 或执行 code --remote wsl+ 这类 VS Code 的远程协议。它唯一能稳定读写 WSL 文件的方式,是 Windows 自动暴露的网络共享路径:\wsl$。这个路径由 WSL2 启动时自动注册,本质是 Windows 对 WSL2 虚拟机文件系统的反向挂载。
常见错误现象包括:
- 直接在 Notepad++ 中打开
/home/xxx/project/file.py—— 报错“文件不存在”或弹出空窗口 - 尝试用
explorer.exe .在 WSL 终端中打开当前目录,结果弹出的是 Windows 临时文件夹(非 WSL 路径) - 手动映射网络驱动器指向
\wsl$Ubuntu后,Notepad++ 仍提示“拒绝访问”,实为未以管理员权限运行 Notepad++(仅部分旧版 Win10 需要;Win11 通常无需)
在 Notepad++ 中正确打开 WSL 文件的两种可靠方式
推荐优先使用资源管理器跳转,避免路径手输出错。关键在于识别你当前 WSL 发行版名称(如 Ubuntu-22.04、Debian),可通过 wsl -l -v 查看。
- 方式一(推荐):在 WSL 终端中执行
explorer.exe \wsl$\home\projectile.txt,然后在弹出的文件资源管理器中右键 → “在 Notepad++ 中打开” - 方式二:在 Notepad++ 中按
Ctrl+O,地址栏粘贴完整 UNC 路径,例如:\wsl$Ubuntu-22.04homelicesrcmain.cpp。注意斜杠方向必须是反斜杠,且发行版名大小写敏感 - 进阶技巧:把常用 WSL 路径加到 Notepad++ 的“文档列表”或“项目”插件中,避免重复输入
保存文件后 WSL 终端不立即感知?检查文件系统同步与权限
Notepad++ 默认启用“以安全方式保存”(即先写临时文件再原子替换),这在 \wsl$ 路径下可能导致 WSL 内核延迟刷新 inode 信息,表现为 ls -l 时间戳未更新、inotifywait 不触发、或 Git 显示“working directory clean”但实际已修改。
- 解决方法:进入 Notepad++ → 设置 → 首选项 → 备份与还原 → 取消勾选
以安全方式保存(推荐)(仅对 WSL 路径生效;Windows 本地文件仍建议保留) - 另一个常见原因:WSL 中该文件属主为 root,而当前用户无写权限。Notepad++ 保存失败时不会弹窗提示,只静默失败。可在 WSL 中执行
ls -l /home/xxx/file确认权限,必要时改用sudo chown $USER:$USER /home/xxx/file - 注意:不要在 Notepad++ 中直接编辑
/etc/、/usr/下的系统文件——这些路径在\wsl$中不可见或只读
想双击 .py/.js 文件直接用 Notepad++ 打开并定位到 WSL 路径?需要注册表干预
Windows 默认关联会把路径传给 Notepad++ 作为 Windows 本地路径(如 C:Users…),而非 WSL 的 UNC 路径。要实现“在 WSL 中双击某文件 → 自动用 Notepad++ 打开对应 \wsl$… 地址”,需手动修改文件关联的命令行参数。
- 以管理员身份运行 regedit,定位到
HKEY_CLASSES_ROOTApplications otepad++.exeshellopencommand - 将默认值从
"C:Program FilesNotepad++ otepad++.exe" "%1"改为:"C:Program FilesNotepad++ otepad++.exe" "\wsl$Ubuntu-22.04%1"(注意此处 %1 前是反斜杠,且需确保 WSL 发行版名完全匹配) - 此操作仅影响通过 WSL 的
cmd.exe /c start notepad++.exe /path/to/file类调用;对资源管理器双击无效,因 Explorer 不走该注册表项
真正省事的做法是:放弃双击幻想,习惯在 WSL 终端里敲 explorer.exe \wsl$Ubuntu-22.04$(wslpath -w $(pwd))/file.py —— 这条命令把当前 Linux 路径转成 Windows 可识别的 UNC 格式,最准也最可控。











