这个问题在所有扩展都被禁用时是否会发生?:是的
VS Code 版本:
Version: 1.85.1
Commit: 0ee08df0cf4527e40edc9aa28f4b5bd38bbff2b2
Date: 2023-12-13T09:48:16.874Z (3 wks ago)
Electron: 25.9.7
ElectronBuildId: 25551756
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: 11.4.183.29-electron.0
OS: Darwin arm64 23.2.0
重现步骤:
简单方法:
git clone https://github.com/gskinner/regexr.git
cd regexr
git checkout 1e382719041f8b1e5290472e14e2c98a6c05b61a
code .
然后按 Cmd+p 并输入任意文件名。
手动方法:
- 创建一个新目录
git init
- 创建一些文件并提交它们
- 添加以下 .gitignore:
#-----------------------------
# INVALID FILES
# (for cross OS compatibility)
#-----------------------------
*[\<\>\:\"\/\\\|\?\*]*
- 提交它
- 在 VS Code 中打开项目以搜索使用 Cmd+P 创建的任何文件
除非您已经在编辑器中打开了这些文件,否则它将找不到任何文件。
删除该行并保存后,文件将再次被找到
我在克隆的一个项目中找到了这个正则表达式,似乎 git
必须以不同的方式解析它,因为显然 git 没有忽略所有文件。
这个问题是 #48771 的后续问题。
4条答案
按热度按时间wsxa1bj11#
@roblourens在处理提到的问题时加入。
8ehkhllq2#
有趣的是,似乎匹配
/
实际上是在匹配路径分隔符,因此在文件夹下的任何内容都会被忽略,而在 git 中并不是这样工作的。@andreamah 您可以验证我是否正确,并检查
rg
本身是否也具有相同的效果,然后向上游报告问题。rdlzhqv93#
确认在最新的rg版本的WSL中发生了这种情况,已使用ripgrep提交了BurntSushi/ripgrep#2745文件。
tpxzln5u4#
我建议您为此创建一个新问题。然而,请注意:我们使用 ripgrep 作为搜索引擎,因此 gitignore 文件的解释取决于他们。所以我建议您尝试仅使用
ripgrep
来查看您是否能在他们的平台上重现它。