不知何故,Visual Studio搜索停止为我工作。每当我搜索“整个解决方案”的一些文本,我得到这样的结果:

找到所有“[无论我正在搜索]”,子文件夹,查找结果 1、“整个解决方案”没有找到匹配的文本。发现是 中途停止。

为什么突然说"没有文件可查"

我在谷歌上找到了一些链接,说按Ctrl + Break或Ctrl + Scroll Lock,但它们似乎都不适合我。


当前回答

多年来,Ctrl+Break的技巧一直适用于我,最终理解为什么会发生这种情况真的很有趣。使用VS2015,我在搜索方面遇到了一些相关的问题:我的Ctrl+Shift+F根本不起作用,当我按下它时,这个组合键似乎被忽略了。我尝试重新安装甚至VS 2015,我仍然得到同样的坏行为。

如果有人也有同样的问题,原因如下:

我发现,无论出于什么随机原因,VS2015显示了“在文件中查找”对话框,在另一个监视器上连接到我的PC。另一个显示器是4K三星电视,通常保持“关闭”,我不知道为什么VS 2015将搜索对话框发送到该显示器。令人惊讶的是,当我打开电视时,搜索对话框自己移动到主显示器上!

其他回答

我目前使用的是VS2019 16.7.7,而且,如果我试图在整个解决方案中找到一些东西,VS永远不会找到所有的事件,有时只有一个,或者一个都没有。

在VS2019的一些最新版本中(可能是16.5或16.6),旧的“查找和替换”对话框被新的“在文件中查找”对话框所取代,这个新对话框对我来说是失败的。一个对我有效的解决方案是禁用新的“查找文件”,继续使用旧的“查找和替换”对话框,通过检查使用以前在工具中查找文件>选项>环境>预览功能。

然而,我观察到这只是在我的一个开放的Visual Studio实例中失败了,所以我尝试了简单的“关闭VS并再次打开它”,启用了新的“在文件中查找”功能,它开始工作了。

两种可能的解决方案,以防简单的“关闭并再次打开”失败。

滚动锁定和打破的组合对我来说没有任何作用。作为一种变通方法,我将解决方案目录添加到Search Folders(第二个省略号按钮),然后将Look In字段更改为解决方案目录。根本问题仍然存在,但对我来说,这在功能上是一样的。

(Visual Studio 2013, Windows 8.1, x64)

这对我来说很有用,因为其他方法都不起作用,或者只在某些时候起作用:

进行搜索,在搜索的同时,一直按住CRTL并继续按Break键。

虫源

这不是Visual Studio或Windows相关的错误。事实上,漏洞就在你的键盘上!据报道,来自不同厂商的许多键盘都有问题。

问题

如果你按下Ctrl+Break,然后先释放Ctrl,那么Break就会卡在一个有bug的键盘上。如果你曾经以“错误”的方式按下Ctrl+Break,你就会遇到搜索被中断的问题。

细节

根据扫码规范,Break和Ctrl+Break是特殊的。当你按下break键时,他们会发送“make”(按下)和“break”(释放)扫描码。当你释放Break时,他们什么也不发送。有bug的键盘将发送以下序列:

按“make”扫描代码 Ctrl+Break“make”扫描代码 按Ctrl“break”扫描代码 暂停“中断”扫描代码

也就是说,Ctrl+Break从来不释放,而是释放Pause。

繁殖

例如,你可以从Visual Studio工具中使用老式的spy++。将它附加到任何东西上,例如Windows记事本和监视消息(我建议您只选择键盘消息)。按Ctrl+Break,首先释放Ctrl。检查spy++的输出。您将看到我在Details部分中显示的序列。

我在同一台电脑上尝试了两种不同的键盘。罗技K120有这个bug,而其他一些三美键盘根据规格表现,没有这个bug。

如果你仔细想想,就很容易理解正确的行为需要特殊的情况处理,而有bug的行为是幼稚的。这就是为什么许多不同的键盘都有bug。

解决方案

更换键盘:)

解决方案

你只需要按Ctrl+Break,注意先释放Break。哪个应用程序处于活动状态并不重要。

我尝试了之前所有的选择。它们对我不起作用,但阅读它们使我确信这是一个bug,我将不得不尝试一些未知的方法来让它工作。所以,我在Visual Studio 2010中尝试了一个简单的文件搜索:

当前文档 所有打开的文件

这两种方法都有效。

然后我尝试在文件中查找,哇!它开始起作用了。