在VS2015中,Resharper中的代码重排快捷键无效。

5
当我尝试使用移动行的快捷键(Ctrl+Alt+Shift+/)时,它会高亮显示代码并显示工具提示消息“使用上/下箭头移动文本行”,但什么也不会发生。然而,如果我通过菜单栏尝试相同的命令(Resharper > Edit > Rearrange Code > Move Up),它会按预期移动所选行。
我经常使用此功能,因此我发现这个错误非常烦人。显然,其他人也遇到了这个问题(请参见Resharper move line up down not working的评论),但我还没有找到解决方法。重置键盘布局并重新应用VS键盘方案无效。
有人能解决这个问题吗?

1
经过更多排除故障,我不再确定这是否是 Resharper 或 Visual Studio 的问题,而是 Windows(7)和键盘布局的问题。结果发现按下 AltGr+Shift+Up 可以工作(在瑞典键盘布局中)。在 VS 中使用“工具”>“选项”>“环境”>“键盘”下的字段来分配键盘快捷方式,并按上述组合键,则会得到 Ctrl+Alt+Shift+Up。此外,在屏幕键盘上点击组合键 Ctrl+Alt+Shift+Up 也可以工作,但按下键只会在屏幕键盘上突出显示 Ctrl、Alt 和 Shift 键。 - flitig
我遇到了完全相同的问题,但是使用的是VS2012。然而,我无法使用任何键盘快捷键来替代鼠标。像你所说的,代码会被突出显示,但箭头键似乎完全没有作用。最让我讨厌的是,没有可用的选项来停用此功能。我经常使用Ctrl + Alt + Shift等快捷键,每次按下这些键超过1秒钟,代码就会被突出显示,这阻止了我清晰地阅读代码。 - Samuel
1个回答

4

[EDIT]

这个问题的原因是(当你通过远程桌面登录到带有VS和Resharper的机器时),Ctrl-Alt-Left Arrow/Ctrl-Alt-Right Arrow组合键没有发送到虚拟机。

有两种解决方法:

  1. 我的第一个解决方案(更改组合键,请参见下文)

  2. 您可以使用AutoHotKey脚本,如线程中所述: https://superuser.com/questions/327866/remote-desktop-sending-ctrl-alt-left-arrow-ctrl-alt-right-arrow-to-the-remote-p

[/EDIT]

原因是 相同热键的重复,可以在“当前快捷键”组合框中找到

修复方法是

我描述了_MoveRight快捷键的过程-对于其他快捷键,步骤是相同的

步骤1 检查冲突的更改

seeImage

  • 转到 工具-->选项-->键盘

  • 在“显示包含命令”字段中找到您的命令(例如moveright)

  • 单击“按快捷键”字段,按ALT + RIGHT ARROW

  • 在当前使用的快捷方式字段中,您将找到冲突的快捷方式-Edit.CompleteWord...

步骤2 现在我们需要删除此快捷方式

  • 在“显示包含命令”字段中写入Edit.CompleteWord

  • 您应该在“所选命令的快捷方式”字段中看到ALT + RIGHT ARROW快捷方式

  • 单击删除按钮

步骤3 现在我们需要将我们的快捷方式添加到_MoveRight函数中

  • 在“显示包含命令”字段中找到您的命令(例如moveright)

  • 单击“按快捷键”字段,按ALT + RIGHT ARROW

  • 单击“分配”


我同意你的观点,我没有测试过重新分配/使用原始的Ctrl + Alt + Shift + Up组合键,但是如果你需要Resharper提供的移动代码块功能,你可以使用我的解决方案。让我明天检查一下,看看我能否处理原始组合键,然后再回复你。 - Reven
@flitig 你是通过远程桌面连接到安装有VS的机器上吗?还是它是虚拟机? - Reven
是的,我正在通过RDP连接到一台物理机器。你认为这可能是问题所在吗? - flitig
@flitig 是的,请查看我在帖子中的编辑。我也是通过rdp连接的。 - Reven
感谢你解释这个问题!我将把这个问题标记为已解答。 - flitig
显示剩余2条评论

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