如何让 Windows 中的 Visual Studio 代码针对 WSL 区分大小写?

How do I get Visual Studio Code in Windows against WSL to be case sensitive?

我在 Windows 中对 WSL 文件系统使用 Visual Studio 代码 1.52.0。文件系统在 WSL 中标记为区分大小写:

mikebaz@PSTower-2020-06:~/code/test$ getfattr -n system.wsl_case_sensitive .
# file: .
system.wsl_case_sensitive="1"

并在文件资源管理器中正确显示为区分大小写(因此此处不存在基本的 Windows 问题)。有两个同名但大小写不同的文件夹:

但是,在 Visual Studio 代码中,这些文件夹被折叠到一个文件夹中:

这也会影响文件夹中 Git 存储库的源代码状态 - 代码看起来很混乱。虽然有一个文件并且它被正确跟踪和提交:

mikebaz@PSTower-2020-06:~/code/test/Folder1$ git status -u
On branch master
nothing to commit, working tree clean

代码视图坚持认为有一个未跟踪的文件:

我如何告诉 Visual Studio 代码停止尝试通过折叠两个文件夹并因此混淆来“帮助”我?

我通过以下方式重现了您的问题:

  • 正在创建 ~/temp/Folder1~/temp/folder1
  • 正在启动VSCode
  • File -> Open Folder
  • 正在打开文件夹 \WSL$\<distroname>\home\<username>\temp

是的,我看到了您所看到的不必要(和不需要的)文件夹重复数据删除。

但是,您是否安装了 Remote - WSL 扩展或 Remote Development 扩展包?使用 Remote - WSL,我可以通过远程连接打开文件夹并看到 Folder1folder1.

在 WSL 中:

  • cd ~/temp
  • code .

一切都显示正确。

注意:这似乎是 known issue(尽管可能与您遇到的方式不完全相同)。

至于似乎由 git 存储库引起的问题,您可能想尝试禁用 VSCode git 集成,如 中所述。

旁注,我的第一个测试是尝试打开 Compact Folders 设置(默认情况下它是打开的,但我禁用了它),但那没有对这个特定问题没有任何影响。