如何在 Visual Studio Code 中查找和替换所有匹配项(在所有文件中)?

Posted

技术标签:

【中文标题】如何在 Visual Studio Code 中查找和替换所有匹配项(在所有文件中)?【英文标题】:How do I find and replace all occurrences (in all files) in Visual Studio Code? 【发布时间】:2016-09-17 16:57:41 【问题描述】:

我不知道如何使用 Visual Studio Code 1.0 版查找和替换不同文件中所有出现的单词。

我觉得这应该是可能的,因为执行 Ctrl + Shift + F 可以让我简单地搜索一个文件夹,但我不知道如何从这里开始。

我查看了各种组合键 https://code.visualstudio.com/Docs/customization/keybindings

但我只找到了如何替换打开文件中的所有匹配项(Ctrl + h)

感谢所有帮助,这让我发疯。

【问题讨论】:

在这里的所有注释中,简单的文本“替换文件”并没有消除打开和关闭文件之间的歧义。在当前的 VSCode 中,当您打开 Find-All/Replace-All 视图时,有一个“仅在打开的编辑器中搜索”的书本图标。另请注意,您的“要包含的文件”和“要排除的文件”必须精心设计。另一个图标是“使用排除设置并忽略文件”。当您处于活动状态时,您可能看不到您想要的所有内容 - 或者您可能会看到您不想要的文件。最后,请注意顶部的刷新图标,在此处更改其他设置后可能需要该图标。 HTH 【参考方案1】:

我正在使用 Visual Studio Code 1.8,并且可以使用此功能。但是一开始理解起来有点棘手,而且(在撰写本文时)docs 并没有清楚地解释如何使用它,所以这里是它的工作原理,一步一步来:

调用在文件中替换(在编辑菜单下,或使用快捷键Ctrl+Shift+H

您会看到一个标准的查找/替换输入替换了左侧的文件窗格:

输入您的搜索字符串和替换字符串,然后按 Enter。它可能会搜索所有文件,然后会在所有项目文件中显示建议的更改 - 但请注意,这些更改尚未进行!如下所示:

现在您需要进行更改(即使在那之后,您也必须保存修改后的文件。)

您可以通过多种方式进行这些更改:

    一次性对所有文件进行所有更改。

单击替换字符串旁边的替换图标(注意:您将看到一个对话框来确认此批量操作。)

    一次在一个文件中进行所有更改。

单击文件名旁边的替换图标(注意:该图标仅在您将鼠标悬停在文件名行上时显示)

    在单个文件中进行单个更改。

单击单个更改旁边的替换图标:(注意:该图标仅在您将鼠标悬停在更改行上时显示)

最后,别忘了保存!

所有这些文件现在都在编辑器中修改,尚未保存到磁盘(除非自动保存已打开)。

使用文件 -> 全部保存(或 Ctrl+Alt+S

更新:我不确定这是什么时候添加的,但是如果您单击“全部替换”按钮并看到此对话框,单击“替换”将更改并一键保存所有文件:

【讨论】:

是否可以保存“搜索替换”?我经常搜索 'class=' 并替换为 'className=' 是否可以跳过最后一步,进行静默搜索和替换?如果我正在做一个琐碎的搜索和替换,我不想保存每个单独的文件。 我不确定这两个问题的答案。但是@satJ,请注意Ctrl+Alt+S 会一次保存所有修改过的文件,所以它非常快速和简单。 该死的,这很危险,默认更改所有文件。是否有在单个文件中查找/替换的命令? 当前全部保存默认为Ctrl-k,后跟字母s。 Ctrl-k,然后 Ctrl+w 将在程序打开一堆窗口后关闭所有窗口。【参考方案2】:

从 vscode 1.3 版开始,这是可能的

    导航到搜索,单击左侧的图标或: (mac)cmd + shift + h (PC)ctrl + shift + h 展开替换 输入搜索词并替换词 确认!

【讨论】:

要搜索特定文件夹中的内容,只需在字段files to include 中添加文件夹路径。您甚至可以在工作区之外查找/替换东西。 ⚠ 它不在文件名内搜索,而是在文件内搜索。 (有人知道如何在工作区外搜索文件名吗?) 2021 还没有实现,没有按钮可以点击“全部替换”你需要使用键盘快捷键...我想我不应该完全替换 sublime-text @ta32 查看 gif 以进行 ux 搜索和替换 哦,我现在看到了,它是右侧带有“ab”的小按钮【参考方案3】:

替换单个文件(当前打开)中的字符串:CTRL + H

对于工作区级别的替换,请使用:CTRL + SHIFT + H

【讨论】:

注意:使用 Ctrl+Shift+H 时,您必须按 Enter 才能运行搜索。【参考方案4】:

2020 年更新

如果您使用搜索功能搜索文件 (Ctrl + Shift + F),很容易错过如何将搜索转换为 UI 中的搜索和替换。

这是一个典型的搜索结果:

要将其转换为搜索和替换,您需要点击搜索输入字段左侧的箭头图标。这将打开替换选项,如下所示。请注意,箭头图标现在指向下方。

键盘快捷键Ctrl + Shift + H 也可用于访问搜索和替换。

关于搜索和替换的 VSCode 文档链接:https://code.visualstudio.com/docs/editor/codebasics#_search-and-replace

【讨论】:

现在的普遍问题是,在 10000 个结果之后,VSCode 停止搜索。有什么解决方法吗? IE。迭代搜索+替换插件?【参考方案5】:

这是最好的方法。

    首先将光标放在会员上,然后按F2。

    然后键入新名称并按 Enter 键。这将重命名项目中每个文件中的所有匹配项。

当您想要跨多个文件重命名时,这是理想的选择。例如,您可能希望重命名 Angular 服务上可公开访问的函数,并让使用它的所有地方都得到更新。

对于更多出色的工具,我强烈推荐: https://johnpapa.net/refactoring-with-visual-studio-code/

【讨论】:

如果我只想重命名当前文件中的匹配项怎么办? @temirbek 我关注这个请求已经有一段时间了。已经2年多了,还没有实施。 github.com/Microsoft/vscode/issues/14836 你好,是否也重命名相关文件夹并导入?【参考方案6】:

在Visual Studio Code Key Bindings 页面上,Keyboard Shortcuts Reference 部分包含每个主要操作系统的 PDF 链接。打开后,搜索“替换文件”或您可能需要的任何其他快捷方式。

另一种方法是使用 Command Palette (ctrl/cmd+shift+P)可以输入“replace”来列出所有相关的命令,包括你想要的:

在文件中替换 ctrl/cmd+shift+H

【讨论】:

【参考方案7】:

Visual Studio 代码:版本:1.53.2


如果您正在寻找 2021 年的答案(就像我一样),答案是 Microsoft 网站上的 here,但老实说很难理解。

转到编辑 > 在文件中替换

从那里它类似于单个文件的搜索功能。

我更改了我正在跨文件使用的类的名称,并且效果很好。

注意:如果找不到“在文件中替换”选项,请先单击“搜索”图标(放大镜),然后它就会出现。

【讨论】:

【参考方案8】:

有两种技术上相同的方法

    首先将光标放在单词上,然后按 F2。 替换您的单词并按 Enter。

    首先将光标放在单词上并左键单击它。 单击“重命名符号”选项。 替换您的单词并按 Enter。

【讨论】:

【参考方案9】:

在 VSC 1.57 版中 您可以使用 F2 键 替换文件夹(重命名符号)

唯一的问题是,即使文件夹内的所有位置都被替换,文件也不会被保存,并且必须在之后进行保存

另外,您可以按Shift + Enter预览要重命名的地方,而不是直接按回车和全部替换。

【讨论】:

以上是关于如何在 Visual Studio Code 中查找和替换所有匹配项(在所有文件中)?的主要内容,如果未能解决你的问题,请参考以下文章

visual studio code如何运行c

Deepin系统中如何安装Visual Studio Code

如何在 Linux 中安装 Visual Studio Code

如何在 Visual Studio Code 中自动获取参数名称?

如何在 Visual Studio Code 中注释多行?

如何在 Visual Studio Code 中隐藏缩进指南?