IDEA Keymap是IntelliJ IDEA集成开发环境中的快捷键配置文件,它包含了IDEA中所有的动作和函数的映射关系。
一、IDEA Keymap的概念
Keymap包括IDEA中所有函数与对应的快捷键的映射,可以通过设置来满足我们的个性化需求。IDEA Keymap机制提供了覆盖、导入、导出及自定义的功能,可以运行自定义指令,调用任何外部程序或IDEA中的动作。
可以使用IDEA自带的Keymap,也可以基于自己习惯重新配置。快捷键的修改一般分为两个层次:一个是在默认值基础上直接修改,比如更换某个快捷键的组合键,这里涉及到的主要是按键学问;另一种则是在整个Keymap的部分甚至是全部基础上重新修改,涉及到思维方式习惯的改变。
<keymap version="1" name="MyKeymap" parent="$default">
<!-- 自定义按键 -->
<action id="MyMenu.Action" class="com.example.MyAction">
<keyboard-shortcut first-keystroke="ctrl shift M" />
</action>
</keymap>
二、IDEA Keymap的优化
1. 理性分配快捷键
对于不同的职业和行业,不同的人习惯和需求也有很大区别。理性地分配最常用或者最重要功能的组合键,也要考虑到连续操作需多大程度的舒适度和不易出错。如:新建文件Ctrl(Win)/Command(Mac)+ N,同时按下左右手两个键使操作更方便好用。
<keymap version="1" name="MyKeymap" parent="$default">
<!-- 自定义按键,按键组合自由搭配 -->
<action id="MyMenu.Action" class="com.example.MyAction">
<keyboard-shortcut first-keystroke="ctrl shift M" />
<keyboard-shortcut first-keystroke="alt shift M" />
<keyboard-shortcut first-keystroke="ctrl alt M" />
</action>
</keymap>
2. 个性化修改快捷键
除了一般通用的快捷键,个性化需求的确可以根据自身情况在行业使用的不同环境下,协同配置合适的快捷键。
<!-- 自定义快捷键 -->
<option name="MY_ACTION" value="CTRL+SHIFT+M"/>
3. 考虑跨平台适配
Keymap应适应到Windows或非Windows平台,并应尽可能量身定制。此外,一些特殊的字符可能在跨平台过程中丢失,应注意在进行快捷键配置时应以兼容跨平台为主要考虑标准,避免跨平台问题带来不必要的麻烦。
<!-- 适应跨平台,使用跨平台的键位方案 -->
<option name="use.mac.shortcuts">true</option>
<option name="use.favorites.shortcuts">false</option>
<option name="use.mnemonic.shortcuts">false</option>
<option name="use.mnemonic.keymaps">false</option>
三、IDEA Keymap的调试与测试
Keymap调试的过程中需要注意不要与已有的Keymap冲突。Keymap的数据结构比较简单,可通过创建调试命令(菜单或自定义按键)进行调试。
// 可在特定场合下得到特定的结果
public class MyAction extends AnAction {
private final String RESULT = "My Action Success!";
@Override
public void actionPerformed(AnActionEvent e) {
//执行具体的操作
}
}
结语:
总的来说通过调整快捷键来提高开发效率,不过想要打造顺手好用的快捷键不能一蹴而就,需要多材多能之人进行开发实践或成为一项规范工作,从而达到提高IDEA开发工作效率的目标。