# Visual Studio EclipseKey 插件说明
使用过 Eclipse 的开发人员都知道,在 Eclipse 中有几个非常常用的快捷键, 比如 ALT-UP DOWN 代码块上下移动,智能分号 等等。这些快捷键在开发过程中使用频度 特别的高,可以大量减少使用鼠标操作的次数,提高代码输入的效率。
但是这些功能在 VS 中一直没有提供,即使在 RESHARP CODERUSH 等重量级别的开发插件中 也没有提供这样的功能,因此开发 EclipseKey 插件的需求就这样产生了。
安装 EclipseKey.vsix 到对应的 VS 版本即可。
重启 VisualStudio 后插件自动被加载,可以从 工具|外接程序管理器 中看到加载的插件程序。
EclipseKey 主要提供了以下功能:
在以上功能中,“选择的代码块”并非等同于编辑器中当前的选择区域:
也就是说“选择的代码块”总是自动扩展到选择区域所对应的完整的若干行代码,从而不会只对半行代码进行操作。
在代码中经常要输入一些需要成对出现的字符,例如左右各种括号,引号等,良好的代码录入习惯应该是在输入时 成对的输入两边的括号或引号后,再输入中间的内容,这样括号等的配对就不会乱,但这样的输入方式通常 需要在输入完后面的括号或引号后,用左箭头将输入光标移动到括号之间,效率比较低。
成对输入括号功能在我们输入左括号时,自动添加相应的右括号并将输入光标定位在两个括号之间, 因而输入的过程中双手不需要离开键盘主区域去寻找箭头按键,以提高输入效率。
成对输入目前支持:
在 CSharp 程序中,分号是输入次数非常多的一个键,而且通常在一行的最后, 但是熟练的程序员一般输入程序一般不会一个字符一个字符顺序输入,而是成对的输入括号, 因而通常会出现一行代码输入完以后,输入光标在一行的中间的情况, 这时候通常需要按一下 END 键将输入光比移动到一行的最后然后再输入分号, 不但需要多敲一个键,更主要的是 END 键的位置通常很难盲打,需要到键盘上去找, 极大的影响录入的效率。
智能分号功能即对分号键进行智能处理:
例如要录入 Console.WriteLine("Hello world;"); 这样一行代码,代码录入的过程大致为:(|表示光标位置)
Console.WriteLine| --
Console.WriteLine(|) -- 左右括号成对输入
Console.WriteLine("|") -- 输入成对的引号
Console.WriteLine("Hello world|") -- 在引号内输入字符串内容
Console.WriteLine("Hello world");| -- 字符串结尾的分号,按下分号键以后分号智能跳到行未去了,并没有插入到字符串中
Console.WriteLine("Hello world;|") -- 再按一下分号键,分号又回到了字符串中,行尾的分号不见了
Console.WriteLine("Hello world;");| -- 结束整行代码,按一下分号键,智能跳到行尾添加了一个分号
在 CSharp 代码中,有一些经常输入的符号按键不是很顺畅,例如 != =>
在当前有选择区域的时候,如果输入以下字符,将会触发 Surround 模板,将选择的代码块用相应模板包围起来。 以下说明中 ... 表示选择的代码块, | 表示应用模板后输入光标所在位置。 请注意为避免输入时不小心触发模板,大部分模板只在选择区是整行的时候触发。(括号、转换模板除外)
模板可以在 EclipseKey.dll.config 文件中配置,可建立自己的模板或修改按键。