Visual Studio Code - 如何复制搜索结果?

128
Visual Studio Code有没有将搜索结果复制到新窗口的方法?
另外,我真的希望能够删除文件名,并将包含搜索结果文本的行复制到新窗口中。
例如,我想将下面的搜索结果复制到新的编辑器窗口中。如果需要安装扩展来完成此操作,我不介意。

enter image description here


您能否用 Shift+点击 并选择所有内容?然后右键复制? - Don Cheadle
无法让它正常工作。尝试了“选择”菜单上的所有选项(“全选”,“展开”等),但都没有成功。 - user783836
1
我认为没有办法做到这一点 - 你应该在 GitHub 上提交一个功能请求。 - Rob Lourens
在这里点赞功能:https://github.com/Microsoft/vscode/issues/8594(复制路径),以及在这里:https://github.com/Microsoft/vscode/issues/17920(复制搜索结果)。 - Devin Rhode
1
使用Sublime Text的好处之一是可以将搜索结果直接放在“编辑器”中,这样非常方便。 - tkane2000
在Linux上,我使用“ALT+F3”。 - Arash
8个回答

265
以下适用于单个文件:
  1. CTRL + F
  2. 输入搜索字符串
  3. CTRL + SHIFT + L 选择所有找到的出现(最多999个)
  4. ESC(或使用右上角的X关闭搜索对话框)
  5. CTRL + I 选择整行
  6. CTRL + C
  7. 打开新文件
  8. CTRL + V

7
绝妙的提示,非常感谢,有些情况下提取相关行非常方便! - Sgedda
1
CTRL + i 对我不起作用,我只是使用正则表达式 ^.+(mysearch).+$ 来搜索并使用 CTRL+SHIFT+L 选择所有行。 - imaginabit
2
只是个小提示,我有超过5K的结果,并且能够复制/粘贴它们所有。没有999的最大限制。可能已经在答案给出后更新了。 - stinkysGTI
5
在Mac上,按下Cmd + Shift + L。 - vargen_
1
在第三步中,我需要使用Alt+Enter。 - StrangeMann
显示剩余6条评论

88

VSCode 1.23 增加了复制搜索结果的功能,参见发布说明:复制搜索结果

搜索结果树上下文菜单包括三个新选项:复制、复制路径和复制全部。这是一个非常受欢迎的请求,可以更轻松地共享或导出您的搜索结果。

复制/粘贴后的结果不太美观或可点击,因此请注意。有一个问题追踪“复制搜索结果”的格式(请参见https://github.com/microsoft/vscode/issues/68877),它在2019年路线图中(请参见https://github.com/Microsoft/vscode/wiki/Roadmap#workbench),希望能得到改进。


v1.41 更新,你可以将你的搜索结果移动到一个新的编辑器中,并轻松地选择所有内容并进行复制。在搜索后(可以跨多个文件工作);点击“在编辑器中打开”链接,如此演示所示:

在新编辑器中复制搜索结果

搜索编辑器的另一个优点是,您可以获取您的搜索结果周围的上下文。因此,您可以获取一些包含搜索词条前后完整行的行数。当然,行号也会被复制。

搜索编辑器上下文演示


你只需要保存 Ctrl+S 搜索结果编辑器自身!然后从那里剪切行。或添加注释。带有语法高亮显示。它将询问您要保存到哪里,默认为您启动搜索的文件夹。它将命名为yourFolder\yourSearchTerm.code-search


关于新搜索编辑器的更多信息,请参见https://code.visualstudio.com/updates/v1_43#_search-editors


2
请注意,“将搜索移动到编辑器”功能是实验性的,因此您必须启用“搜索:启用搜索编辑器预览”选项才能使用它(当前使用1.42版本)。 - kfriend
请参阅 https://stackoverflow.com/a/66353798/836330 了解有关复制搜索结果的更多信息,如果您只想要复制搜索匹配项。 - Mark

33

3
在 macOS 上是 Command + Shift + L - Kxrr

16

截至2020年12月,CTRL + SHIFT + L不起作用(对我而言)。

在搜索结果呈现后,右键点击文本文件并选择“更改所有出现”(或CTRL+F2)。这将自动选择匹配的文本项。然后你可以简单地将其复制。


2
这正是我在寻找的!谢谢! - FlySoFast

6

如果您只需要关心每行的开头的搜索文本,则可以使用以下步骤处理单个文件: 1. 高亮显示搜索字符串 2. 使用CTRL + SHIFT + L选择所有找到的匹配项 3. 使用SHIFT + ↓选择所有这些行 4. 使用CTRL + C复制选定内容 5. 打开一个新文件 6. 使用CTRL + V粘贴内容


5
现在,在搜索输入框下面有一个“在编辑器中打开”按钮。enter image description here

2
那个点不是已经在被接受的答案中了吗? - Mark
@Mark 是的。被采纳的答案可以包含一个更清晰的截图,就像Renaud在这里提供的那样。被采纳的答案没有使用“在编辑器中打开”这个语言(但我已经编辑以包括该语言,并引用了被采纳的答案中显示清晰的“在编辑器中打开”链接的GIF演示)。 - Nate Anderson

1

错误。根据文档,正确的格式是使用右Alt + Enter,然后使用Ctrl + C复制,打开一个新标签页并使用Ctrl + V粘贴您的结果。


1

键盘快捷键在我的 Mac 上和最新的 VSCode 版本中无法使用。

我可以通过右键菜单复制所有搜索结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接