Visual Studio 2010:编辑器停止响应键盘

48

我遇到了一个非常奇怪的错误,似乎是 Visual Studio 2010 的一个怪异问题:有时,在将光标移动到 CSS style="" 属性中的双引号时,光标会拒绝移动。我无法输入任何内容,只有响应的键是 UP/DOWN 光标键和 DEL 键(但不包括 BACKSPACE)。

输入不起作用,但按下光标键上的 LEFT/RIGHT 会产生以下错误:

无法完成操作

我不知道是什么原因导致这种情况发生,但我猜测可能是由于 Intellisense 混淆了视线并出错了。

目前,每当这种情况发生时,我都必须在 style 属性的双引号之外编写任何 CSS,然后使用鼠标将光标放在要出现 CSS 的位置,并按 CTRL-V 进行粘贴。 非常恼人 :(

肯定有解决这个问题的办法...?

希望有人有答案!


1
我有一个相反的问题(不仅仅是在CSS文件上),即编辑器无法接受光标键,但我可以输入字母/数字。关闭并重新打开文件似乎是唯一的解决方法。 - Michael Itzoe
1
@Andrew:你安装并启用了任何扩展吗?尝试禁用它们所有并检查问题是否仍然存在。如果没有 - 尝试逐个打开它们,从而找出是谁造成的问题。 - Ivan Danilov
1
我的是在全新的Windows 7安装上进行的新安装。据我所知,没有安装或启用任何多余的扩展。 - Chuck Le Butt
1
可能你正在使用Reshaper。我曾经遇到过同样的问题,一旦我暂停了Reshaper,它就正常工作了。所以我清除了Reshaper缓存并重新绑定了Reshaper的键盘设置。现在又可以和Reshaper一起使用了。 - Gayan
1
与vs2013和R#相同的问题-下面Jerry的解决方案可以修复。 - Joe
显示剩余3条评论
12个回答

54

在编辑C#时遇到了VS 2012中的问题。
我注意到在Resharper试用期结束并插入有效许可证号码后不久问题就发生了,并且仅在某些源文件中出现。
解决方案:工具-> 选项-> Resharper:暂停。
尝试输入-现在应该可以工作了。
然后:工具-> 选项-> Resharper:恢复。
问题消失了。


这对我有用。谢谢。 - RobotCaleb
1
重新安装Resharper对我有帮助(同时更新到8.2.1版本)。 - Sasha
2
Resharper导致了我的问题,而Jerry下面的解决方案是帮助我的。 - Prasad Silva
2
已向JetBrains报告。链接在此处 - http://resharper-support.jetbrains.com/requests/10752 - Robin Maben
2
暂停-恢复ReSharper没有帮助。ReSharper选项 - 环境 - 通用 - 清除缓存解决了问题。 - Sel
今天这个问题被我解决了。谢谢! - sheldonhull

37

我曾在使用 Visual Studio 2013 和 Resharper 8.2.1 时遇到过这个问题。本帖中提供的所有解决方案都没有奏效(即使是暂停和恢复 Resharper)。

在联系 JetBrains 支持后,发现这是一个缓存问题。

删除以下目录中的所有文件可以解决此问题,因为 Resharper 会重新创建新的缓存:

C:\Users\[Username]\AppData\Local\JetBrains\ReSharper\v8.2\SolutionCaches\[Project_reference]

2
谢谢!我在Visual Studio 2012中遇到了问题,删除缓存文件夹解决了它。 - Prasad Silva
谢谢!我在创建新项目后想立即输入内容时遇到了同样的问题。删除缓存有所帮助。 - Filip Vondrášek
非常感谢这个。我也遇到了同样的问题,而且突然出现了。 - Uroš Goljat

24

我偶尔遇到编辑器的一些奇怪问题,我的解决方法是: 

按Ctrl-Tab(两次)切换到另一个代码文件,然后再切回同一个代码文件(或者按alt tab切换到另一个应用程序并返回,其中之一...无法确定问题是否能够重现)

最终解决方案可能是重新安装。


3
据我所知,重新安装不会有帮助。VS2010是一个有缺陷的产品。 - Mrchief
有时候我无法使用Ctrl+Tab,但是在这种情况下,点击另一个选项卡然后再返回就可以解决问题。 - Eric J.

14

微软已经通过其支持门户网站多次报告过这个问题的不同变化。其中这篇帖子 中,如果你向下滚动,你将看到一条评论,其中有一堆其他报告都详细描述着类似的问题。

微软似乎无法重现这个问题,但是他们“将所有相似的键盘锁定问题复制到一个中央错误中,以便我们可以考虑记录事件是否必要”。这似乎是对很多这些帖子的通用回应。有些人报告说,这只是因为另一个窗口/面板/选项卡处于焦点,但我可以看出OP显然没有这个具体的问题。对我来说,这似乎是一个那种随机无法解决的 bug。希望我永远不会遇到它!还有许多论坛帖子在互联网上,用户表示删除某些第三方插件已经解决了此问题。

我刚刚发现 这篇帖子,它可能对你有用的评论(也链接到这个SO帖子)。由于我没有这个 bug,所以我无法为您测试其有效性。它的主要观点似乎是关于键盘布局切换的某些内容。

对不起把所有这些东西放在答案里,即使从技术上讲,这不是一个答案而只是一堆研究材料,但是这绝不会适合在评论中。而且为了防止一个接一个地出现链接垃圾邮件,我再次道歉,但是我无法将他们所说的 所有事情提取到这篇文章中。我希望其中有一些对你有用 :)


编辑:您应该查看下面排名最高的答案,因为它似乎解决了许多人的问题,尽管我从未安装 Resharper 插件,但有时仍会遇到此问题,但现在我正在使用 VS2013,且没有再出现这个问题,也许他们已经修复了它...


9
他们怎么可能不复制这个。你只需要使用Visual Studio就行了。这种事情经常发生,非常令人恼火。 - PilotBob
1
请看Erez Cohen的回答。似乎在很多情况下都是由于Resharper插件出现问题造成的。 - Sverrir Sigmundarson

13
清空解决方案缓存文件夹
C:\Users\{UserName}\AppData\Local\JetBrains\ReSharper\v8.2\SolutionCaches\

当我联系 JetBrains 支持时,他们建议我这样做。

这是由 Jetbrains 支持建议的。


这对我也是解决方案。 - wesm
每当这个问题出现时,我一直使用这种方法来解决它。除了我去了“Resharper > 选项 > 常规”并点击了“清除缓存”按钮,然后关闭并重新打开了VS。 - ShadowLiberal

6

永久修复...不太确定,但我发现同时按下Ctrl+Shift+Caps Lock+Tab可以消除这个问题,并重新启用鼠标和键盘。我知道这不是最好的解决方案,但它有效。


对我有用!谢谢! - Holly Marie Batchelor

4
我每天都会遇到同样的问题。直到我安装了Web Essentials扩展程序,我才注意到它。现在我已经卸载了它,看看会发生什么。我已经尝试重新安装Visual Studio,但没有成功(但是,直到我安装了各种扩展程序之后,我才注意到这个问题)。
有时,关闭并重新打开我正在工作的特定代码窗口可以解决它。如果失败了,有时我会关闭所有窗口,然后重新打开我正在编辑的窗口。如果所有这些都失败了,通常需要完全重新启动Visual Studio。
我觉得很有趣的是,微软表示他们无法复制这个问题。Scott Guthrie在他的MVC4 beta演示中第一手经历了这个问题,在此处28分钟
更新:截至2012年4月5日上午9:33(美国中部时间),自从卸载Web Essentials以来,这个问题还没有再次出现。这是我最长时间没有遇到这个错误。如果我能度过接下来的24小时,我就可以肯定地指责Web Essentials。
更新:2012年4月6日上午10:05(美国中部时间):好吧,显然不是Web Essentials的问题。今天早上在编辑_Layout.vbhtml文件中的块内容时,它再次发生。关闭标签并重新打开它可以解决问题。

3
我在IDE上有同样的问题,有时回车键根本不起作用... 我的解决方案是:清理项目/解决方案。
顺便说一下:清理还可以解决修改CSS或HTML后出现的其他意外行为。

3
我经常遇到编辑器冻结的情况,不仅仅是在CSS引用上,而是任何文件都会出现。我有一个双显示器设置,一个显示器上有文档窗口,另一个显示器上有所有工具窗口。有时,某些工具窗口也会冻结(即无响应)。
以前,我通常会关闭/重启IDE;但偶然发现,切换全屏模式可以恢复正常。所以现在每次看到冻结,我都会尝试切换模式。
不确定这是否能解决你的问题,但值得一试。
抱怨:总的来说,我发现这个基于WPF的新产品比它的前任更加不稳定和容易出错。

在编辑 C# 或 TypeScript 源文件时,我开始遇到键盘间歇性地锁定,在 Visual Studio 2019 版本 16.8.x 中出现了这个问题。升级到版本 16.9.1 并没有解决这个问题。但是,正如你所建议的那样,切换到 全屏模式 然后再切回来就能恢复我的键盘。(从 视图 菜单底部附近,选择 全屏,或输入 Shift+Alt+Enter)。 - DavidRR

1
我尝试了这里的所有其他解决方法,但似乎都没有用,而且问题只存在于一个解决方案中,而不是另一个解决方案中。
禁用 Resharper 暂时解决了它,但重新启用后问题又出现了,这不是一个可行的长期解决方案。
对我有效的是禁用所有 Resharper 扩展(在 Resharper -> 扩展管理器下)。即使重新启用了它们,我仍然能够输入,所以我不确定哪个扩展具体引起了问题,但这是其他人尝试的另一种方法。

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