我是如何通过Android studio早下班的(改键姿势,代码模板详解)

工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者。最新认真解读了这段话感触颇深,古人大智,不细说后面那段了,单说前面那段。本文讲述了如何使用Android studio的快捷键和Live Template功能各种解放双手。网上也有很多类似的介绍,但是看了都不够详细全面,所以我带着各种gif图再来一次(流量慎入)。

Paste_Image.png

首先来说说Android studio改键。
以前玩WOW的时候,我会把最常用的技能设置成滚轮上滚下滚,这这么上下滚,脸滚鼠标打BOSS。本文将介绍Android studio改键,模板,以及一些常用的设置和比较快捷的代码习惯。
虽然Android studio也能设置滚轮,但是目前我还没有发现哪个快捷键适合用滚轮来设置。
下面将以Mac为例,其实都是通用的。

还有一些其他的提升效率的方式,请看这篇:
Android开发提升效率的工具、插件、心得集锦(gif动画演示)

改键姿势

Android studio提供了好几套快捷键模板,首先我们先选择一个最接近于使用习惯的模板来操作:
找到设置中的keymap,选择一个常用的,比如Eclipse(Mac OS X)点击copy,然后就可以开始修改快捷键了。

Paste_Image.png

我们可以通过目录或者搜索的方式找到我们想要修改的快捷键:
比如想要修改Save as Live Template,可以通过目录查找到或者右上角的搜索查找到。

Paste_Image.png

已经找到了想要修改的快捷键,双击该条目,会出现想要的菜单,分别是:
1、添加按钮快捷键
2、添加鼠标快捷键
3、添加缩写(后面会有介绍)
4、移除设置过的快捷键(修改过快捷键后才会出现)
5、移除设置过的快捷键缩写(修改过快捷键缩写后才会出现)
6、重置快捷键(对该快捷键做过修改后会出现)

Paste_Image.png

下面详细介绍一下:
1、添加按钮快捷键
点击后会出现如下界面,这里注意的是重新设置的快捷键需要同时按下。

Paste_Image.png

另外一个注意点是,如果设置的新键位与其他键位冲突会提醒,是否删除其他原有的键位,这里就需要各人自己判断了。个人经验是如果特别确定其他键位不常用或者即将修改,最好不要轻易的删除其他键位。

Paste_Image.png

新的快捷键设置好后就可以上天了。

2、添加鼠标快捷键
点击后会出现如下界面,通过这个可以设置成类似最常见的代码跳转:cmd+左键(mac)/ctrl+左键(win)的快捷键方式。

Paste_Image.png

这里可以鼠标左键点击,鼠标右键,鼠标的中键,单击双击。最棒的是滚轮上滚下滚也可以设置,配合功能键,会出现非常多的奇妙组合,以前打游戏时脸滚鼠标的操作这里也可以。比如cmd+下滚

Paste_Image.png

3、添加缩写
介绍这个功能之前首先先介绍一个功能:Find Action,上图:

find action.gif

这个功能是可以搜索所有的功能的一个功能,可能有点绕,快捷键其实也只是Android studio中一个Action的快捷方式,如果我们知道这个Action,其实是可以通过这个Find Action来找到它,所以理想状态下,如果你熟悉所有的Action,理论上只要设置一个快捷键就行,就是这个Find Action。不过这样其实也不是最快最方便的,还是看情况使用,我现在的使用习惯是频次较高的一些功能都使用原生的或者自定义的快捷键,一些频次较低的通过Find Action。

那么这个添加缩写是干什么呢:
还是刚才的Save as Live Template,如果不设置缩写,我在搜索的时候需要搜索Save as Live Template,但是如果设置了它缩写为st,直接搜索st即可:

Paste_Image.png
Paste_Image.png

重置之类的就不多说了,另外具体的哪个功能改成什么样就因人而异了,这个还真没办法给出特别具体的建议,如果我说改成这样会很方便,但是别人会觉得不习惯,甚至不同的人键盘敲击的姿势也是不一样。

另外还有一个问题,我修改的快捷键到了其他电脑上难道还要重新设置一遍?
我们可以导出设置,然后在另外一台电脑导入设置就行了。
这里需要注意的是,导出时会有很多的设置选项,需要注意是否所有的设置都导出,还是只导出keymap。

Paste_Image.png

说了半天Save as Live Template,这个功能又是什么呢?下面将介绍一些的功能。

Live Template

Save as Live Template,就是将一段代码设置成Live Template,Live Template(以下简称模板)是什么呢,很多同学可能已经知道了,希望能帮助到不知道的同学,上图:

live template.gif

为了更方便理解,演示一些平时用到的例子:

live 2.gif

这里着重介绍一下Live Template功能:
gif图中的使用效果已经看见了,但是里面设置的$VAR1$,$END$是什么意思呢?这些是设置模板时的参数,设置后使用模板的时候光标会停在对应的参数位置,按下tab或者enter后会跳转到下一个光标处。不管是java代码中,还是xml中都可以设置模板。

如何设置,打开设置面板,Editor->Live Template

Paste_Image.png

我们逐一分析:

1、右上角的分组等设置区域:

这块区域主要就是添加,删除,复制模板的地方。这个group就是对模板进行分组操作。

注意点:如果使用Save as Live Template会自动分组到user组中

Paste_Image.png

2、设置模板唤起方式即缩写区域

显而易见这里就是设置模板的缩写和描述的地方,该缩写就是唤起模板的方式

注意点:强烈建议所有的缩写都以一个相同的字母开始,比如zdialog,zitem,zli,ztoast。这样的好处是当你想用模板的时候只要按下z就会集中显示你设置过的模板,否则这些缩写会和系统的各种缩写混在一起很难找并且记忆。同理,我理解的代码规范里面设置变量时需要以m开头也是这个道理。

3、模板代码编辑区域以及参数设置

这个是重点,下面会详谈

4、代码适用范围

设置在哪些文件中可以调用模板

Paste_Image.png

5、其他设置

reformat according to style
选中后在调用代码时可以重新格式化。这样我们在编写模板代码时可以不考虑格式问题,当然最好还是格式舒服一点,后面改起来也方便

Paste_Image.png

现在重点说说如果进行模板设置

简单模板很简单,但是想要设置一个通用的并且好用的模板需要用到一些属性的用法,这里分别做些例子(直接使用中文当代码了):
1、最简单的例子:
直接将一段常用的代码设置成模板,缺点是不能灵活的改变

type1.gif

2、带多个参数(不设置表达式)的例子:
这里$$中的就是参数,参数的名字自定义的,我这里演示的参数都是没有意义的,实际编辑时建议带有实际意义。

小细节:如果参数名称相同,那么赋值时值也相同,这个很多地方会用到。

type2.gif

3、环绕的例子
只要带上$SELECTION$就会有环绕的效果,什么是环绕?上效果图:

type4.gif

环绕的使用方式是选中要被环绕的代码段,然后Surround With(最好使用各自平台的快捷键),这个功能也会有很多系统提供的环绕模板。

Paste_Image.png

4、参数表达式
这里先上个使用的图:


type3.gif

这是表达式配置的图:

Paste_Image.png

先分别说明一下:
第一列是参数名称
第二列是表达式
第三列是默认值
第四列是跳过,即使用时直接光标直接跳过这个参数,适用于某些能自动取值的表达式

表达式系统提供了很多,具体含义最好自己都试一下,或者从系统提供的一些模板中学习体会,其实都很简单,实际使用时也用不到很多。这里是官网的介绍

注意点:enum枚举这个表达式使用时编辑完括号中的内容后要按回车确认,不然不会生效


OK,Live Template介绍完了,这个功能真的是发挥你的想象力,各种解放生产力。不要局限与一句代码,代码片段,内部类等等都可以设置模板。只要是你发现重复的地方都该考虑考虑使用模板。
当然类模板比如activity模板的设置就是另外一回事了,这个后面会开帖详说。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,654评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,095评论 25 707
  • 返回上次光标的位置Ctrl+Alt+ left/right 返回至上次浏览的位置 Alt+回车 导入包,自动修正C...
    请叫我四爷阅读 1,923评论 1 2
  • 第一步 新建一个project,或者如果你已经有project的话,那就直接新建一个module.注意选择Java...
    Ariel_Tian阅读 1,296评论 0 4
  • 我是最喜欢玩的,总是闲不住,如果有朋友 叫我,就屁颠屁去了,如果没同学叫我自己一个人鼓捣鼓捣这个,鼓捣鼓捣那个,一...
    晓玖的碎碎念阅读 185评论 0 0