VS Code - 在目录中的所有文件中搜索文本

use*_*134 282 visual-studio-code

有没有办法使用VS Code在目录中的所有文件中搜索文本?

即,如果我在搜索中键入"find this",它将搜索当前目录中的所有文件并返回匹配的文件.基本上就像我做了一个grep.我的同事告诉我Sublime有这样的事情.

Dav*_*haw 317

您可以执行编辑,在文件中查找(或Ctrl+ Shift+ F- 默认键绑定,MacOS上的Cmd+ Shift+ F)来搜索当前打开的文件夹.

对话框中有一个省略号,您可以在其中包含/排除文件,以及搜索框中用于匹配大小写/单词和使用正则表达式的选项.

  • 问题是当你在Visual Studio Code中打开一个目录时,有几十个子目录,你经常想在一个目录中搜索.在文件中查找根本不是这样做的.(当然,这是一个完全不同的问题的有用答案.)@JesperWilfing的回答(右键单击文件夹,在文件夹中找到)更好. (36认同)
  • 这不能回答问题。您如何只在给定的文件夹中搜索? (4认同)
  • 根据另一个答案,如果右键单击一个文件夹并选择“在文件夹中查找...(Shift + Alt + F)”,您将看到搜索特定目录所需的格式。看起来您是从工作空间的根目录开始的。例如,我的工作空间为“ WebInterface”,而我的文件夹包括为“ ./WebInterface/cli/src/ [文件夹]”。 (4认同)
  • 匹配后,按Ctrl键(Mac:'Cmd')点击搜索结果中的关键字打开该文件进行并排编辑,跳转到文件中的该位置. (3认同)
  • 在 Notepad++ 中是否有类似的东西,您可以在其中指定要搜索的目录,而无需打开它? (3认同)

Jes*_*ing 210

在VS Code中......

  1. 转到资源管理器(Ctrl+ Shift+ E)
  2. 右键单击您喜欢的文件夹
  3. 选择"在文件夹中查找"

搜索查询将预填充"要包含的文件"下的路径.

  • 这应该是公认的答案.我能够在父文件夹中首次使用多个子文件夹来解决此问题,其中包含需要更换字符串的数十个文件.非常感谢! (20认同)
  • “在文件夹中查找”不适用于自动忽略的文件夹,例如 JavaScript 开发人员有时需要的 `node_modules`。“VS Code 默认排除某些文件夹以减少您不感兴趣的搜索结果的数量。打开设置以更改 files.exclude 和 search.exclude 部分下的这些规则。” 来自 https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options (2认同)

Mar*_*rie 17

不太明显的是,您可以使用以下模式递归搜索

./src/**/*.html
Run Code Online (Sandbox Code Playgroud)

所以也许将以下内容保留为大多数典型搜索的默认值,以提醒您有这样的事情

./src/**/
Run Code Online (Sandbox Code Playgroud)

例如,我在寻找左右对齐/停靠内容的属性,除了“开始”我不记得了,所以我进行了以下搜索,向我显示“项目开始”

在此处输入图片说明

这将我的布局固定为 在此处输入图片说明

代替 在此处输入图片说明

这是“item-sart”在模板中的位置。 在此处输入图片说明

  • `./src/**/*.html` 将忽略 `.src/child/grandchild/foo.html`。我们如何更新正则表达式以包含任意深度的孙文件夹? (3认同)

Saj*_*abu 16

Ctrl+ Shift+F 在此处输入图片说明

点击搜索框下方的3个点。

在搜索框中键入查询

要包含的文件框中键入./FOLDERNAME,然后单击Enter

替代方法是,右键单击文件夹,然后选择在文件夹中查找

  • 我一直在 VSCode 中寻找这个功能,而且它一直就在我眼皮子底下。 (2认同)

Ham*_*awy 15

Ctrl+ P(Win,Linux),Cmd+ P(Mac) - 快速打开,转到文件

  • 这仅匹配文件名,而不是文件内的文本. (5认同)

小智 11

默认情况下,此操作不绑定到键,绑定它执行此操作:

  1. 文件>首选项>键盘快捷键(Ctrl+K,Ctrl+S)
  2. 搜索"查找文件夹"
  3. 按"filesExplorer.findInFolder"搜索结果左侧的+图标
  4. 输入所需的组合键


Poo*_*oSH 11

VS Code 默认操作

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n
#命令捷径命令ID
1.视图:显示资源管理器CTRL+ SHIFT+Eworkbench.view.explorer
2.聚焦当前目录\xe2\x86\x90(左箭头)
3.右键单击/在文件夹中查找...ALT+ SHIFT+FfilesExplorer.findInFolder
\n

建议

\n

即使使用键盘快捷键,默认命令也太慢(需要按七次键)。

\n

首先,让我们摆脱左箭头键。默认情况下,该filesExplorer.findInFolder命令需要聚焦一个文件夹。然而,它可以完美地处理文件 - 通过搜索其父文件夹。

\n
    \n
  1. 首选项:打开键盘快捷键(CTRL+ KCTRL+ S
  2. \n
  3. 搜索命令filesExplorer.findInFolder
  4. \n
  5. 右键单击/更改 When 表达式 ( CTRL+ K, CTRL+ E)
  6. \n
  7. explorerResourceIsFolder从 When 表达式中删除要求。结果应该是:explorerViewletVisible && filesExplorerFocus && !inputFocus
  8. \n
\n

现在,“在文件夹中查找”命令也适用于文件,因此快捷键组合只需一键按下即可。接下来是ALT++ ,这很烦人,原因有两个SHIFTF

\n
    \n
  1. 你必须记住什么时候按,CTRL但什么时候按ALT,很容易搞砸。
  2. \n
  3. 一些扩展使用ALT+ SHIFT+F进行代码自动格式化 - 我怀疑这是您希望的副作用。
  4. \n
\n

这就是为什么我建议使用一些 When Expression 魔法将快捷方式更改为CTRL+ SHIFT+ :F

\n
    \n
  1. 首选项:打开键盘快捷键(CTRL+ KCTRL+ S
  2. \n
  3. 搜索workbench.action.findInFiles并将其 When 表达式设置为!filesExplorerFocus
  4. \n
  5. 再次搜索filesExplorer.findInFolder并将其键绑定更改为CTRL+ SHIFT+F
  6. \n
\n

结果

\n
    \n
  1. CTRL+ SHIFT+F当文件资源管理器聚焦时触发“在文件夹中查找”,而在其他地方则触发默认的“在文件中查找”。
  2. \n
  3. 您必须按CTRL+ SHIFT+F来“在文件中查找”,或按CTRL+ SHIFT+ ECTRL+ SHIFT+F来“在文件夹中查找”。容易记住。此外,后者可以通过按住CTRL+SHIFT的同时按下来优化E,然后F
  4. \n
\n

用户配置

\n
{\n  "key": "ctrl+shift+f",\n  "command": "workbench.action.findInFiles",\n  "when": "!filesExplorerFocus"\n},\n{\n  "key": "ctrl+shift+f",\n  "command": "filesExplorer.findInFolder",\n  "when": "explorerViewletVisible && filesExplorerFocus && !inputFocus"\n}\n
Run Code Online (Sandbox Code Playgroud)\n

警告

\n

filesExplorer.findInFolder命令会覆盖“要包含的文件”字段。例如,您可能有一个文件搜索模式*.c,*.cpp,*.h,*.hpp,它现在被文件夹路径覆盖。但您始终可以按\xe2\x86\x91字段中的 (向上箭头) 循环浏览历史记录并恢复之前的模式。

\n


Mil*_*nič 10

我认为这些官方指南应该适用于您的案例.

VS Code允许您快速搜索当前打开的文件夹中的所有文件.按Ctrl + Shift + F并输入搜索词.搜索结果被分组到包含搜索词的文件中,并指示每个文件中的命中数及其位置.展开文件以查看该文件中所有匹配的预览.然后单击其中一个命中以在编辑器中查看它.


Blu*_*rry 10

要添加到上述内容,如果要在所选文件夹中搜索,请右键单击该文件夹并单击“在文件夹中查找”或默认键绑定:

Alt+ Shift+F

如前所述,要搜索项目中的所有文件夹,请单击“编辑”>“在文件中查找”或:

Ctrl+ Shift+F


use*_*134 7

一个简单的答案是单击左侧栏上的放大镜


rob*_*cat 5

如果您在 VSCode 中打开了一个目录,并且想要搜索一个子目录,则可以:

  • ctrl- shift-F然后在files to include字段中输入带前导的路径./

或者

  • ctrl- shift-E要打开资源管理器,请右键单击要搜索的目录,然后选择该Find in Folder...选项。


Dan*_*any 5

顺便说一句,对于在搜索输入中选择多个文件夹的谷歌员工,您可以用逗号分隔您的目录。适用于排除和包含

例子: ./src/public/,src/components/


Von*_*onC 5

从 VSCode 版本 1.73(2022 年 10 月)开始还有另一个选项

将“在文件夹中查找”添加到搜索树的上下文菜单

由PR 163597实施

https://user-images.githubusercontent.com/31675041/192396545-2bae6f64-7315-42d6-9385-61a44528d0a7.png