Visual Studio:如何重新映射Ctrl + E键?

时间:2014-05-20 17:21:07

标签: visual-studio visual-studio-2013

我正在使用Visual Studio 2013,我希望 Ctrl + E 映射到Edit.LineEnd。基本上,当你点击 end 时会发生同样的事情。

我可以在选项/环境/键盘下重新映射它,但问题是visual studio仍然将 Ctrl + E 视为和弦。当我点击 Ctrl + E 时,我看到一条消息,而不是走到行尾:

  

(Ctrl + E)被按下。等待和弦的第二把钥匙。

当我重新映射 Ctrl + A Ctrl + N Ctrl时,不会发生这种情况 + P Ctrl + F ,或 Ctrl + B

1 个答案:

答案 0 :(得分:5)

这看起来像是Visual Studio图层命令路由和键绑定的副作用......

如果查看默认绑定(我的设置基于C#配置文件),您可以看到有大量其他绑定以 Ctrl + E :

Keybindings for <kbd>Ctrl</kbd>+<kbd>E</kbd>

重要观察:

  • 每个命令都在括号中指定其上下文(全局,文本编辑器,工作流设计器)
  • 文本编辑器
  • 中已存在多键(和弦?)绑定
  • 工作流设计器绑定无关紧要/冲突,因为它们处于完全独立的上下文中

如果在全局范围内设置绑定,则它在优先级上排在最后(即任何特定上下文都会覆盖更通用的上下文)。由于您在文本编辑器中,它正在尝试匹配该上下文中存在的和弦。

如果要在文本编辑器中绑定新的快捷方式(即标有Use new shortcut in:的下拉列表,默认为Global),它实际上会删除Edit.ToggleWordWrap的键绑定。这是因为你不能与一个和弦有一个键绑定重叠,所以VS假设你真的想要你想要添加的那个并且克服冲突。

或者,如果您想同时保留两者,则可以先将Edit.ToggleWordWrap重新映射到其他绑定。