Resharper 注册快捷键失效解决办法


解决中文版VisualStudio中使用Resharper快捷键问题
在非英文版的Visual Studio中安装Resharper以后会出现如下提示:




---------------------------
ReSharper
---------------------------
Some keyboard shortcuts could not be assigned because the current keyboard scheme is read only.
Change the keyboard scheme and try again.
---------------------------
确定   
---------------------------




打开Visual Studio -- Resharper -- Options -- General -- Restore Resharper keyboard shortcuts ,点击 Apply ,也同样出现上述提示框。那么可以确定,是当 Resharper 修改 Visual Studio 的快捷键映射表的时候发生错误。
快捷键的映射表包含在 Visual Studio 的用户设置文件 %USERPROFILE%\My Documents\Visual Studio 2008\Settings\CurrentSettings.vssettings 中。它是一个xml文档,默认是没有排版的。我们可以将它复制一份,更名为xml后缀,用ie或者xmlspy等工具打开,对它进行排版,以便查看和后续操作。
通过比较中文版和英文版的设置文件,在以下(xpath)路径中,我们可以找到一些不同之处:
/UserSettings/Category[@name="Environment_Group"]/Category[@name="Environment_KeyBindings"]/KeyboardShortcuts
中文版的vssettings的节中,少了不少条目,经过手工设置快捷键( Visual Studio -- 工具 -- 选项 -- 环境 -- 键盘)并对vssettings进行diff比较,发现中英文版的一些关键字不同,例如英文版为 Scope="Global" ,中文版为 Scope="全局" ;英文版为 Up Arrow ,中文版为上箭头。由此可以推断,Resharper在进行检索的时候仅仅按英文进行检索,故找不到一些特定的关键字。
这里批评一下微软,对于这类非展现给用户查看的元数据,不应进行本地化。否则第三方程序进行索引的时候会遇到困难。特别需要本地化的场合,也应做一个映射表。
经过整理,我总结出中英文版本vssettings文件节中的不同之处。用户可以手工把节截取出来,进行字符串替换。将英文版的关键字替换成中文版的关键字。
以下每一条第一行为英文版,第二行为中文版。




Scope="Global"
Scope="全局"




Scope="Text Editor"
Scope="文本编辑器"




Del
Delete




Ins
Insert




+Up Arrow
+上箭头




+Down Arrow
+下箭头




+Left Arrow
+左箭头




+Right Arrow
+右箭头




+PgUp
+Page Up




+PgDn
+Page Down




+Space
+空格键




+Bkspce
+Backsapce




*** 为了方便读者,贴出整理后与Resharper有关的快捷键映射,请定位到节的尾部,删除包含Resharper的两个,并添加以下内容 ***
     Delete
     Insert
     Ctrl+Shift+R
     Ctrl+Shift+R
     Ctrl+Shift+R
     Ctrl+R, R
     Ctrl+R, R
     Ctrl+R, Ctrl+R
     Ctrl+R, Ctrl+R
     Ctrl+R, Ctrl+R
     Ctrl+R, O
     Ctrl+R, O
     Ctrl+R, Ctrl+O
     Ctrl+R, Ctrl+O
     Ctrl+R, Ctrl+O
     Ctrl+R, D
     Ctrl+R, D
     Ctrl+R, D
     Ctrl+R, Ctrl+D
     Ctrl+R, Ctrl+D
     Ctrl+R, Ctrl+D
     Alt+Delete
     Alt+Delete
     Ctrl+R, M
     Ctrl+R, Ctrl+M
     Ctrl+R, V
     Ctrl+R, Ctrl+V
     Ctrl+R, F
     Ctrl+R, Ctrl+F
     Ctrl+R, P
     Ctrl+R, Ctrl+P
     Ctrl+R, I
     Ctrl+R, Ctrl+I
     Ctrl+R, E
     Ctrl+R, E
     Ctrl+R, Ctrl+E
     Ctrl+R, Ctrl+E
     Ctrl+R, Ctrl+E
     Ctrl+R, S
     Ctrl+R, S
     Ctrl+R, Ctrl+S
     Ctrl+R, Ctrl+S
     Ctrl+Enter
     Ctrl+Enter
     Ctrl+Alt+F12
     Ctrl+Alt+F12
     Ctrl+Alt+F12
     Ctrl+Alt+H
     Ctrl+Alt+H
     Ctrl+Alt+H
     Ctrl+Alt+F
     Ctrl+Alt+F
     Ctrl+Alt+D
     Ctrl+Alt+D
     Ctrl+Alt+D
     Ctrl+Alt+U
     Ctrl+Alt+U
     Ctrl+Alt+U
     Ctrl+Alt+T
     Ctrl+Alt+T
     Ctrl+Alt+T
     Ctrl+Shift+Alt+F12
     Ctrl+Shift+Alt+F12
     Shift+Alt+F11
     Shift+Alt+F11
     Ctrl+Alt+Page Up
     Ctrl+Alt+Page Up
     Ctrl+Alt+Page Down
     Ctrl+Alt+Page Down
     Shift+Alt+L
     Shift+Alt+L
     Ctrl+,
     Ctrl+,
     Ctrl+Shift+,
     Ctrl+Shift+,
     Ctrl+E, H
     Ctrl+E, H
     Ctrl+E, Ctrl+H
     Ctrl+E, Ctrl+H
     Shift+Alt+空格键
     Ctrl+Alt+空格键
     Ctrl+E, L
     Ctrl+E, Ctrl+L
     Ctrl+E, U
     Ctrl+E, Ctrl+U
     Alt+Insert
     Alt+Insert
     Ctrl+Shift+Alt+上箭头
     Ctrl+Shift+Alt+下箭头
     Ctrl+Shift+Alt+左箭头
     Ctrl+Shift+Alt+左箭头
     Ctrl+Shift+Alt+右箭头
     Ctrl+Shift+Alt+右箭头
     Ctrl+Alt+右箭头
     Ctrl+Alt+左箭头
     Ctrl+D
     Ctrl+Alt+/
     Ctrl+Shift+/
     Ctrl+E, Ctrl+C
     Ctrl+E, Ctrl+C
     Ctrl+E, C
     Ctrl+E, C
     Ctrl+Shift+F1
     Ctrl+Shift+F1
     Ctrl+T
     Ctrl+T
     Ctrl+T
     Ctrl+Shift+T
     Ctrl+Shift+T
     Ctrl+Shift+T
     Alt+\
     Alt+\
     Shift+Alt+T
     Shift+Alt+T
     Shift+Alt+T
     Alt+`
     Alt+`
     Ctrl+Shift+F11
     Ctrl+Shift+F11
     Alt+Home
     Alt+Home
     Alt+End
     Alt+End
     Shift+Alt+F12
     Shift+Alt+F12
     Shift+Alt+F12
     Alt+下箭头
     Alt+下箭头
     Alt+上箭头
     Alt+上箭头
     Ctrl+[
     Ctrl+[
     Alt+Page Down
     Alt+Page Down
     Alt+Page Up
     Alt+Page Up
     Shift+Alt+Page Down
     Shift+Alt+Page Down
     Shift+Alt+Page Up
     Shift+Alt+Page Up
     Ctrl+Shift+Backsapce
     Ctrl+Shift+Backsapce
     Ctrl+E, T
     Ctrl+E, T
     Ctrl+E, Ctrl+T
     Ctrl+E, Ctrl+T
     Ctrl+E, F
     Ctrl+E, F
     Ctrl+E, Ctrl+F
     Ctrl+E, Ctrl+F
     Ctrl+Shift+Alt+空格键
     Ctrl+Shift+Alt+空格键
     Alt+Enter
     Ctrl+Shift+F4
     Ctrl+Shift+F4
     Ctrl+Alt+Backsapce
     Ctrl+Alt+Backsapce
     Ctrl+8
     Ctrl+8
     Ctrl+8
     
     
最终的结果如下:

 Ctrl+Shift+左箭头
 Delete
 ...





现在,可以在中文版Visual Studio中使用 Resharper 的快捷键了。

你可能感兴趣的:(Visual,studio)