如何在 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 中查找和替换所有匹配项(在所有文件中)?的主要内容,如果未能解决你的问题,请参考以下文章
Deepin系统中如何安装Visual Studio Code
如何在 Linux 中安装 Visual Studio Code