ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

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

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

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

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

b
banan3'14

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

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

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

https://i.stack.imgur.com/uC2LF.png

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

https://i.stack.imgur.com/VolXK.png

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

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

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

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

https://i.stack.imgur.com/3mccX.png

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

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

https://i.stack.imgur.com/dwnk4.png

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

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

https://i.stack.imgur.com/J0t6i.png

最后,别忘了保存!

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

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

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

https://i.stack.imgur.com/HiyU3.png


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

由于 vscode 的 1.3 版本,这是可能的

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

https://i.stack.imgur.com/WAMqQ.gif


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

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

要在工作区级别进行替换,请使用:CTRL + SHIFT + H


注意:使用 Ctrl+Shift+H 时,您必须按 Enter 才能运行搜索。
j
jhovanec

2020 年更新

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

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

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

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

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


现在的普遍问题是,在 10000 个结果之后,VSCode 停止搜索。有什么解决方法吗?即迭代搜索+替换插件?
D
DonDaniel

这是最好的方法。

首先将光标放在成员上,然后单击 F2。然后输入新名称并按 Enter 键。这将重命名项目中每个文件中的所有匹配项。

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

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


如果我只想重命名当前文件中的出现怎么办?
@temirbek 我已经关注这个请求一段时间了。已经2年多了,还没有实施。 github.com/Microsoft/vscode/issues/14836
嗨,它是否也重命名相关文件夹并导入?
M
Magnus Lind Oxlund

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

另一种方法是使用命令面板 (ctrl/cmd+shift+P),您可以在其中键入“替换”以列出所有相关命令,包括您想要的命令:

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


J
Jesse H.

Visual Studio 代码:版本:1.53.2

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

转到编辑>替换文件

https://i.stack.imgur.com/VBhh8.png

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

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

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


S
Shuaib Abubakker Bapputty Haji

有两种技术上相同的方法

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


D
Dharman

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

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

此外,您可以按 Shift + Enter 预览将要重命名的位置,而不是直接按 Enter 并全部替换。