如何在目录中的所有文件中搜索文本?
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+K、Ctrl+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中的任何目录的所有文件中搜索文本的实用程序
如何使用PowerShell递归搜索目录中的所有文件,包括隐藏目录中的隐藏文件?