如何在目录中的所有文件中搜索文本?

Posted

技术标签:

【中文标题】如何在目录中的所有文件中搜索文本?【英文标题】:How to search for text in all files in a directory? 【发布时间】:2016-11-29 02:29:35 【问题描述】:

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

即,如果我在搜索中输入find this,它将搜索当前目录中的所有文件并返回匹配的文件。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

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

在 VS 代码中...

    转到资源管理器 (Ctrl + Shift + E) 右键单击您喜欢的文件夹 选择“在文件夹中查找”(Alt + Shift + F

搜索查询将预填充“要包含的文件”下的路径。

【讨论】:

这应该是公认的答案。我第一次能够在父文件夹中使用多个子文件夹来解决这个问题,其中有数十个文件需要替换字符串。非常感谢! “在文件夹中查找”不适用于自动忽略的文件夹,例如 javascript 开发人员有时需要的 node_modules。 “VS Code 默认排除一些文件夹,以减少您不感兴趣的搜索结果的数量。打开设置以更改 files.exclude 和 search.exclude 部分下的这些规则。”来自code.visualstudio.com/docs/editor/… 如果 repo root 不是实际的项目 root 也有点棘手,在这种情况下 VSCode 总是默认搜索整个 repo,但是没有办法将其限制为当前项目(在 VSCode 中打开的文件夹) 接受的答案对我不起作用(不确定我是否做错了什么)。这工作 - 谢谢。 这确实有破坏“要包含的文件”字段中的任何内容的不幸副作用,而且我无法恢复我常用的过滤器。【参考方案3】:

Ctrl + Shift + F

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

在搜索框中输入您的查询

files to include框中输入./FOLDERNAME并点击Enter

另一种方法是,右键单击文件夹并选择Find in Folder

【讨论】:

我一直在 VSCode 中寻找这个功能,并且一直在我的眼皮底下。 非常感谢,我正在寻找如何在特定文件夹中查找。到目前为止,我使用 sublime 在特定文件夹中查找。 正在寻找一些扩展或其他东西来做到这一点,但这个功能已经存在。谢谢。 我在我的文件夹之前缺少点 .,非常有意义!【参考方案4】:

不那么明显的是,您可以使用以下模式进行递归搜索

./src/**/*.html

所以也许将以下内容作为大多数典型搜索的默认设置,以提醒存在这样的事情

./src/**/

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

这将我的布局固定为

而不是

这里是“item-sart”在模板中的位置。

【讨论】:

./src/**/*.html 将忽略 .src/child/grandchild/foo.html。我们如何更新正则表达式以包含任何深度的孙文件夹? 如果你的目标是你的项目根目录 ./src/ 文件夹,你似乎错过了第一个正斜杠 我有像 ./src/components/BMS/BookmarkComp.html 这样的文件夹/文件,它找到文件,如果我要搜索一些 html 标签。 前导斜线对我没有任何改变。【参考方案5】:

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

【讨论】:

这仅匹配文件名,而不匹配文件内的文本。【参考方案6】:

我认为这些official guide 应该适用于您的情况。

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

【讨论】:

【参考方案7】:

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

【讨论】:

【参考方案8】:

默认情况下,此操作未绑定到键,要绑定它,请执行以下操作:

    文件 > 首选项 > 键盘快捷键(Ctrl+KCtrl+S) 搜索“查找文件夹” 按“filesExplorer.findInFolder”搜索结果左侧的 + 图标 输入所需的组合键

【讨论】:

【参考方案9】:

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

Alt+Shift+F

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

Ctrl+Shift+F

【讨论】:

【参考方案10】:

如果你在 VSCode 中打开了一个目录,并且想要搜索一个子目录,那么:

ctrl-shift-F 然后在files to include字段中输入以./开头的路径,

ctrl-shift-E打开资源管理器,右击要搜索的目录,选择Find in Folder...选项。李>

【讨论】:

【参考方案11】:

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

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

【讨论】:

【参考方案12】:

    在搜索中输入搜索关键字(CTRL + SHIFT + F)

    使用排除选项 (!) 排除不需要的文件夹/文件

    例如:!文件夹/文件*

    回车

搜索结果给你想要的结果

【讨论】:

【参考方案13】:

要只在一个文件夹中搜索,您必须单击它并按Alt + Shift + F

当你使用Ctrl 时,VS Code 会查看所有项目。

【讨论】:

【参考方案14】:

选择您的文件夹, 按 + + F 不知道 windows 但这适用于 mac :)

【讨论】:

Mac 上也一样:Option + Shift + F【参考方案15】:

跨文件搜索 - 按Ctrl+Shift+F

查找 - 按Ctrl+F

查找和替换 - Ctrl+H

有关基本编辑选项,请点击此链接 - https://code.visualstudio.com/docs/editor/codebasics

注意:对于 mac,Ctrl 代表命令按钮

【讨论】:

【参考方案16】:

以防万一您想使用 PowerShell 搜索然后打开当前目录中的所有文本文件:

foreach($file in $(dir -recurse -include *.txt))

    code $file

您也可以更具体一点,甚至更改文件类型:

foreach($file in $(dir <specificDir> -recurse -include *.<anyExtension>))

    code $file

【讨论】:

【参考方案17】:

请注意,如果您单击“要包含的文件”字段右侧的“书”图标,它将在搜索“要包含的文件”字段中的所有文件和仅搜索之间切换打开的编辑器中的文件(匹配“要包含的文件”字段)。

这可能只有在您知道阅读搜索对话框底部的文本时才会很明显,当您切换书本图标时,该文本将在以下内容之间发生变化:

在“./project_dir/sub_dir”中未找到任何结果 - 在所有文件中再次搜索 - 了解详情

还有这个:

在打开的编辑器中找不到与“./project_dir/sub_dir”匹配的结果 - 在所有文件中再次搜索 - 了解详情

如果你认为你已经找到了所有出现的东西,但你只是在查看打开的文件中的所有出现,这真的会让你一头雾水。

【讨论】:

【参考方案18】:

只需点击放大镜并搜索字符串....

【讨论】:

它只检查打开的文件内部。

以上是关于如何在目录中的所有文件中搜索文本?的主要内容,如果未能解决你的问题,请参考以下文章

在PHP中搜索任何目录的所有文件中的文本的实用工具

PHP 用于在PHP中的任何目录的所有文件中搜索文本的实用程序

如何从c ++中的给定目录中删除所有文本文件

如何使用PowerShell递归搜索目录中的所有文件,包括隐藏目录中的隐藏文件?

如何在目录中的所有 csvs 文件中进行 python 关键字搜索和单词计数器并写入单个 csv? [关闭]

如何在vim中搜索文件目录?