[福利] 成吨提高开发效率: Intellij Shortcuts 精简子集与思维模式 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
linesh
V2EX    程序员

[福利] 成吨提高开发效率: Intellij Shortcuts 精简子集与思维模式

  •  1
     
  •   linesh
    linesh-simplicity 2016-07-20 22:05:49 +08:00 3886 次点击
    这是一个创建于 3370 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在线精简 cheatsheet 备查表:intellij.linesh.tw
    Github 项目:intellij-mac-frequent-keymap
    全文完整链接:成吨提高开发效率: Intellij Shortcuts 精简子集与思维模式

    Intellij 的快捷键多而繁杂,从官方推荐的 keymap,到网络上很多的个人总结,资料可谓浩如烟海。相反,如何从众多的快捷键中快速找到使用频率最高、对工作效率提升最多的快捷键,则成为一个难题。这个 cheatsheet 速查表,正是为了解决 Intellij 快捷键学习过程可能遇到的这个问题。

    这一年里我拉拉杂杂地阅读了许多 Intellij 快捷键与使用理念的资料,不管是官方的 keymap 还是个人的博客,结合平时的工作和个人项目经验,我尝试整理并总结其中最精华的部分,同时通过这个子集来总结、思考与提高效率相关的思维模式和理念。分享出来,希望能顺便给学海中的同学提供有益的帮助。

    目标读者和人群

    • 想要快速上手 Intellij 快捷键的同学。多而没有重点的其他资料不用看了,优先学习最精华最常用的快捷键,才是节省时间,提高效率之道
    • 想要不断对比、精简你的快捷键集合的同学。毕竟快键辣么多,记得最有用的就好
    • 备查。这个是最主要的目的,存个书签或者记个网址,需要的时候只要有网络,随时跨平台可查
    • 尝试提高思维层级,从理念和思维模式的视角来看待编程和工具的同学

    理念与思维模式

    IDE 与电脑作为工具,永远是高效完成特定工作的辅助。因此我们所谓的高效有了上下文:以完成工作为主,在这个过程工具的作用是辅助工作。那么,所谓高效也即是问,如何更专注于工作本身,更高效地完成工作呢?在一系列落地的快捷键背后,这个围绕快捷键所展开的工作系统,其实质性提高工作效率的理念和思维模式本身是什么呢?我的回答是:

    • 更高层次的抽象
    • 声明式使用

    更高层次的抽象

    更高层次的抽象,指的是从代码、从语言本身特性的层面思考编程,而非单纯的文本或者字符串。要把思维从“把这五行代码剪切并复制到一个新的方法里”等把代码当成无意义字符的低层面活动,转变到以作为语言核心的要素和特性为单位的思考,比如类、变量、方法、重命名、重构、 if-else 、循环、可循环元素等。

    在这方面, IDE 提供的 Live Template、**重构(Refactoring)**、部分后向声明等,都是这种思想的产物,允许你从更高的层级(语言特性、与 Java 高相关的重构)来思考代码,并尽量多地向上屏蔽细节。

    声明式使用

    声明式使用,指的是直接使用你完成工作所需要的元素(类、字段、方法等),让 IDE 为你自动补全缺少的声明或定义。这种思想同样贯穿这本工具集的始终,以更语义化(更高阶)的操作来使用工具。

    在这方面, IDE 提供的 后向声明(Postfix Auto Completion)自动补全(Auto Completion) 等,都是这种思想的产物。你不需要关注操作所在的上下文, IDE 会为你补全,你需要关注的是工作和操作本身。

    本 cheatsheet 如何通用?

    像这种 cheatsheet 的记录,有可能会随时间或版本变迁而不再通用,过多的定制也可能使得追踪和维护成本增加。为了尽可能多地减少维护成本,尽可能长地保持这份 cheatsheet 的有效性,下列快捷键的选取遵循以下几个原则:

    • 仅列出 Mac 版的快捷键
    • 统一使用 Mac OSX 10.5+版本的 keymap 作为基准
    • 原则上对作为基准的 keymap 只删不改,即可能删除不需要的快捷键,但非特殊原因则不会更改已默认启用的快捷键
    • 少部分确实需要更改的快捷键,我会采用*星号标明,并标明原因

    快捷键精简子集

    本章主要分七个部分展开总结:生产力大杀器、语言要素生成、编辑、导航、重构、搜索、运行时。版本控制的部分未录入,原因是我倾向于使用命令行提交,而非 IDE 内置 VCS 支持。见仁见智。最后一栏是该操作在 IDEA 中的操作名称,可以在 keymap 中检索对应的 action/shortcut 找到。

    后面快捷键部分,V2不支持markdown的表格语法,因此全文只能请大家到下面链接去看,全文目录附上。如果只是想要收藏一个精简的cheatsheet,这里也附上链接。Github点赞是必须的。

    在线精简 cheatsheet 备查表:intellij.linesh.tw
    Github 项目:intellij-mac-frequent-keymap
    全文完整链接:成吨提高开发效率: Intellij Shortcuts 精简子集与思维模式

    9 条回复    2016-07-21 20:59:56 +08:00
    chhx
        1
    chhx  
       2016-07-20 22:22:46 +08:00
    赞!有 windows 版本的就更好了
    RanchoH
        2
    RanchoH  
       2016-07-20 23:26:15 +08:00
    希望能有 Windows 版本!
    jsxqf
        3
    jsxqf  
       2016-07-21 09:41:33 +08:00
    赞一个!
    linhua
        4
    linhua  
       2016-07-21 10:55:23 +08:00   1
    直接使用 vim 的操作方式 , 感觉这样 体验更统一
    https://github.com/goreliu/vimdesktop
    sqbing
        5
    sqbing  
       2016-07-21 16:45:48 +08:00
    很多快捷键都是被慢慢试出来的,不过这样子反而记得很清楚
    linesh
        6
    linesh  
    OP
       2016-07-21 20:49:52 +08:00
    @chhx @RanchoH @jsxqf 谢谢支持

    我还想加个新功能,统计一下每个快捷键被使用的频率百分比,一起放到主页上 http://intellij.linesh.tw
    linesh
        7
    linesh  
    OP
       2016-07-21 20:51:05 +08:00
    @sqbing 是丫,尤其是还有 Key Promoter 这种插件。
    linesh
        8
    linesh  
    OP
       2016-07-21 20:55:57 +08:00
    @RanchoH Windows 版本其实我还在纠结…因为感觉会让整个页面内容变多,可能会分散读者的注意力。今天在想,能不能自动检测来访者的 http header ,看是 mac 还是 linux/windows ,不过又想,总不能人家来访是 windows 你就不让人家查 mac 啊。所以我还在继续纠结中
    linesh
        9
    linesh  
    OP
       2016-07-21 20:59:56 +08:00
    @linhua 层主你好,这个强行安利我给 92 分,剩下 8 分以 233 的形式送出。

    已点赞支持,哈哈哈。

    其实虽然一直知道 IDEA 有 vim 插件,但是我一直没用(因为我 vim 不好我会乱说),原因之一是我觉得,它们负责的层面是不同的。 Vim 在做文本编辑的时候很强悍,但也如我在文章所说,写代码时我们其实是在编程语言这个层面思考问题的,这个时候显然不适合把代码当作一般的文本来看待,而是需要 IDE 这种更高一级,在代码的语意上提供快捷键支持的工具来搞定。

    个人想法,我个人 vim 不是很熟。有兴趣的同学跟帖讨论?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2274 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 01:00 PVG 09:00 LAX 18:00 JFK 21:00
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86