如何在VSCode中搜索调试控制台?

27

目前这是一个功能请求, 所以我知道答案不是直截了当的,但我想一些聪明的人们已经找到了聪明的解决方法。

一种方法是将输出复制/粘贴到某个文本编辑器中,但显然不够好。

有人建议将调试输出重定向到终端,因为终端具有搜索功能,听起来更好。

所以问题是,如何将调试输出重定向到终端?

当然,如果你有更好的解决方案,那就更好了。

编辑(来自GitHub线程)

您可以在调试启动任务上使用属性“console”:“integratedTerminal”将输出重定向到终端。


有人已经在 GitHub 上回答了你的问题 ;) - Jaya
@Jaya 哈哈,谢谢! 不过我还是会保持问题的开放,以防有更好的解决方案出现。 - Félix Paradis
这是如何设置你在编辑中提到的属性的方法:在这里 - TT--
进入项目的根目录,然后输入“flutter logs”。 - undefined
4个回答

30
看起来这个答案现在已经过时了,可以参考这个其他答案
新增了一种类型过滤功能。使用方法如下:
  1. 将焦点放在调试控制台上(例如,点击它)
  2. 按下 cmd + F / ctrl + F
  3. 开始输入

您将在调试控制台的右上角看到您输入的内容。

The little text box that appears top right corner of the debug console

你可以在调试控制台上“启用按类型筛选”(在'x'左边的3条线)然后只会显示匹配的行。按Esc键清除搜索。
所以这不完全是OP想要的搜索功能,而且你不能输入空格,但目前(2019年7月)这是最好的内置工具。

7
这是一个不幸的局面 :/ - Antony Stubbs
4
很不幸,这不仅因为它很难找,而且还因为它的局限性-请参见上文。 - Antony Stubbs
4
不好,因为这不是一个适当的搜索。它不允许你搜索"某物的列表",因为它不允许在搜索中包含空格,因此对于搜索人类可读格式的自定义日志来说基本上是无用的。 - SikoSoft
3
很不幸,特别是因为这在30年前的编辑器中已经是一个解决的问题了。 - Martin Capodici
1
我正在做的是将所有行复制到剪贴板,然后在主文本编辑器中打开一个新窗口,将它们粘贴进去,并使用合法的文本搜索工具。 - Lavamantis
显示剩余3条评论

10
自2020年8月和VSCode 1.49版本以来,调试控制台已经支持过滤功能:
引用:

调试控制台过滤器

调试控制台现在支持过滤功能,这样用户就可以更容易地找到他们正在寻找的输出,或者隐藏不相关的日志输出。
过滤器还支持排除模式(例如,以感叹号!开头的模式)。 过滤器仅适用于程序输出,而不适用于用户运行的评估。
与VS Code中的其他输入框一样,您可以使用上下箭头键在旧的过滤器输入之间导航。
在下面的短视频中,输出被过滤为包含文本“http”的条目,不包含文本“http”(使用过滤器!http),然后包含单词“Severity”:
(点击图片放大。在动画的右上角区域寻找过滤器)
而且在即将到来的2020年9月VSCode 1.50版本中,你可以知道你在搜索中的位置:
自上一个里程碑以来,调试控制台支持过滤,使用户更容易找到他们正在寻找的输出,或者隐藏不相关的日志输出。
现在我们添加了一个徽章,清楚地显示过滤掉了多少项。 调试控制台徽章 -- https://media.githubusercontent.com/media/microsoft/vscode-docs/vnext/release-notes/images/1_50/debug-console-badge.png
2023年11月,Sattar Hummatli在评论中补充道:
前往项目的根目录,然后输入“flutter logs”。

11
过滤很好,但如果我需要搜索呢?我想要查找行并查看它们的上下文。 - Gregor A. Lamche
4
@GregorA.Lamche 说得对,这与搜索不同。 - VonC
3
我只想浏览输出结果,而不必使用非常棘手的鼠标滚动条。箭头键不起作用。我不得不每次都复制粘贴到Notepad++中。 - Resource
1
@Resource 我同意,那真是令人沮丧。 - VonC
进入项目的根目录,然后输入"flutter logs"。 - undefined
@SattarHummatli 很好的观点。为了更好地展示,我已将您的评论包含在答案中。 - undefined

0
我最近遇到了同样的问题,并成功找到了一个解决方法,对我来说起作用。我想在这里分享一下,以防能帮到你或其他正在处理同样问题的人。
  1. 在VSCode中导航到键盘快捷键部分 文件 > 偏好设置 > 键盘快捷键

  2. 使用搜索栏查找 cmd+f

  3. 找到命令后,检查 When 列,在我的情况下,它指示如果编辑器处于打开状态,即使未处于焦点状态,也应该触发 Find editorFocus || editorIsOpen

  4. 为了使命令在终端处于焦点时也能起作用,修改 When 的值为 editorFocus || editorIsOpen && !terminalFocus,这样当按下 cmd+F 时,它会检查终端是否不处于焦点状态。

enter image description here


0
要在搜索而不是过滤时,您需要进入项目的根文件夹并键入flutter logs

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