Android Studio快捷键

一般来说键盘用的越多鼠标用的越少,那么写起代码来效率就越高;常见的快捷键想必大家都已经掌握,接下来我就分享一些你可能不知道的但确非常实用的快捷键。

下文所有快捷键基于如下keymap
Windows: Default
Linux: Default
OSX: Mac OSX 10.5+

自动补全的时候是Enter还是Tab?


自动补全enter和tab区别


在使用自动补全的时候EnterTab的行为还是有一些细微的区别的:

  1. 使用Enter会补全你选择的语句
  2. 使用Tab的话,会替换掉你之前在这里的内容(删除后面的语句直到遇到点号,逗号,分号)

这种情况我们还是会经常遇到的,比如要替换一个资源的ID(R.id.a_xxx_xxx),想必大多数人都是先选择a.xxx_xxx删除,然后输入新的内容,或者相反;其实这时候,用Tab才是最优雅的方式。

快捷键:(在补全的时候)Enter/Tab

返回编辑器窗口


返回编辑器窗口


正在写代码的时候,很多操作会让焦点脱离编辑器;比如Find Usage, Logcat, 切换到项目结构视图,类型继承树等;如果视图切换了如何快速切回编辑器继续写代码呢?简单的鼠标点一下编辑器就可以了,但其实还有两种选择:

  1. Esc: 让编辑器窗口获取焦点,这时候就可以输入代码了
  2. Shift + Esc: 这个会让编辑器获取焦点,并且顺手帮你把刚刚打开的窗口关闭了。

个人喜欢第二种;Find Usage完毕了,Shift + Esc, 优雅~

  1. Esc: 返回编辑器
  2. Shift + Esc: 返回编辑器并关闭当前窗口

返回上次打开的工具窗口


返回最后打开的工具窗口


接上面那个功能,如果你Shift + Esc 写了一会儿代码,发现又需要打开刚刚的窗口怎么办?这种场景通常发生在Logcat这个Tol Window上,看完了日志,写代码,写完代码看日志;如何快速切换?

快捷键:F12

快捷打开窗口


使用数字快捷打开窗口


有木有发现有的窗口上面有个数字?这样的窗口(工具窗)我们可以快捷打开!

  • Mac: Cmd + 数字
  • windows/Linux: Alt + 数字

任意窗口切换


窗口切换


上面的切换还是无法满足你的要求?记得Mac的Cmd + Tab,Windows的Alt/Win + Tab吗?Android Studio也有这个类似的功能,可以让你切换到任意窗口!

在这个切换窗口打开的时候,你可以直接按数字切换到对应的工具窗口,或者输入字母搜索右边的编辑器窗口,如果你需要关闭某个窗口,在上面按BackSpace即可。

快捷键:Ctrl + Tab

隐藏所有窗口


隐藏所有窗口


好了学了那么多打开窗口的技能,如果你想关闭那些乱七八糟的窗口,安安静静写代码应该怎么办?

  • Mac: CMD + Shift + F12
  • windows/Linux: Ctrl + shift + F12

如果需要恢复所有窗口,再按一次这个快捷键即可。

参数提示


参数提示


这个功能估计很多人知道了,但是还是提一下。在自动补全以后,如果某个方法参数超级长,你不知道参数是什么怎么办?可以试试这个。

  • Mac: CMD + P
  • win/Linux: Ctrl + P


自动生成变量


自动生成变量

作为一门静态类型语言,Java是有一定的类型推导能力的;那么你是否经常书写:

String testStr = "testStr";
List<String> testStrings = new ArrayList<String>();

其实大可不必写那些恼火的类型声明的,一看就知道testStr, testStrings就知道是什么类型,再这么干不就是废话么!好在IDEA给了我们这个能力。尝试一下这个快捷键吧,会给你惊喜。

  • Mac: Cmd + Alt + V
  • Win/Linux: Ctrl + Alt + V

有的童鞋可能会问了:我使用ArrayList, HashMap的时候,习惯类型声明为List,Map等接口,这个自动生成的类型声明还是具体的实现啊,怎么办?这一点IDE已经帮你想到了,试试shift + tab,他会给你一个可以选择的类型列表~

自动提取参数


自动提取参数

有时候你正在写一个方法的时候发现。哎哟,这个变量最好是当作参数传递进来啊;要做成这么一件事,你必须把这个方法内部所有使用这个局部变量的地方替换,把所有调用这个函数的地方添加参数,繁琐至极!好了有了这个你可以随便玩了:

  • Mac: Cmd + Alt + P
  • Win/Linux: Ctrl + Alt + P

当然,如果你想保留原来的方法,只是搞一个参数不同的方法(重载)出来,可以在弹出的那个对话框里面打勾。

自动提取方法


自动提取方法

写代码的时候是否会发现不知不觉的这个方法已经太长了,适合分解然后提取出一个个子方法;或者是重构的时候看到一个一两千的函数,你是不是头都大了?一般情况下,我们都是把要提取的代码copy出来,然后写一个方法(还要什么该死的方法签名)然后把这段代码复制进来;其实这个过程是机械的,完全可以由IDE完成:

  • Mac: Cmd + Alt + M
  • Win/Linux: Ctrl + Alt + M

如果想改变方法的签名,在对话框里面选择你需要的就可以了~

上面提到了三个快捷键其实是比较类似的,如何记忆呢?

  1. 首先组合键都是Cmd/Ctrl + Alt
  2. 然后提取变量Variable=V,参数Parameters=P,方法Method=M

内联变量/参数/方法


内联

好了学会了上面那几个快捷键,万一玩high了,比如提取了太多的方法,想“弄回去”,该怎么办呢?这个操作叫他Inline..

  • Mac: Cmd + Alt + N
  • Win/Linux: Ctrl + Alt + M

上面那个图只是参考,其实不仅可以作用于变量,还可以是方法/参数,个人觉得方法inline比较有用。

万能重构键


万能重构键

静态类型语言重构起来相对容易的,但是通常修改一个地方会牵扯到很多别的地方,我们只有一处一处找到这些编译错误然后手动修复。其实有好多工作是可以自动完成的,比如删除某个方法;先确认有没有人调用(Alt + F7),没有的话把方法体删了,有的话去看看调用的地方再决定怎么办。

但是重构的操作实在是太多了!我们没有办法也没有必要一个个记住,知道这个快捷键即可,我叫他万能重构键:

  • Mac : Ctrl + T
  • Win/Linux: Ctrl + Alt + Shift + T

在Win/Linux上可以考虑把这个快捷键改一下键,一下按四个键臣妾很难做到啊。。

这个重构菜单每一个功能都可以自己去尝试一下,使用之后不好用你来打我。

重命名


重命名

好了介绍了那么多貌似很高端的玩意,来个大部分人都知道的吧。有时候你发现有个变量名字取得有问题,或者没文化的队友/自己单词拼错了咋办?需要把所有用到这个变量的地方重新命名,小case!

快捷键:shift + F6



Select In..

说实话,想不出一个比较好的翻译 :P 干脆使用英文吧。


Select In..

有没有这样的场景:你在Android Studio打开了一个图片文件(或者别的文件),想在资源浏览器里面查看这图片;在Eclipse里面我想大部分的人是Alt + Enter进入文件属性复制地址,然后在系统资源管理器里面打开;或者装一个EasyExplore插件。在Android Studio里面,这是内建支持的!而且还不止如此!比如你想看看某个文件在包的哪个目录,通常是不是点击Project View上面的那个小圆坐标;用这个快捷键鼠标就能搞定。

快捷键: Alt + F1

弹出的菜单有一系列的选项;按对应的数字就可以选择;其他的菜单有什么功能可以自己尝试一下。

拓展选择


拓展选择

这个功能应该很多人都知道;但还是说明一下,因为跟下面两个功能跟这个结合起来才有威力。这个功能太强大了,自己去按几遍就能想到很多使用场景了;我相信有了这个功能,你使用鼠标的机会会少很多。

  • Mac: Alt + up/down
  • Win/Linux: ctrl + w / ctrl + shift + w

Surround With..


Surround With

如果你想把一段代码使用if语句包起来;又或者使用try包围一段可能有运行时异常的代码,你会怎么干?

首先用光标定位到代码块开头,写上 try {然后,光标代码块末尾加上} catch (XXXRuntimeException e) {// todo}?可以试试这个快捷键。

  • Mac: cmd + alt + t
  • Win/Linux: ctrl + alt + t

可以使用上面的拓展选择选择你需要的代码块,然后使用这个功能Surround With;如果你什么都不选择的话,那么默认选择的是光标所在行。

Unwrap/Remove


Unwrap

这个功能跟上面提到的是一对,有了Surround With自然就有Unsurround With;使用情况没有上面那个那么多,但是好歹一对,一起介绍吧。

高亮某东西


highlight something

有时候看代码的时候,看到某个变量想知道哪里使用了它;你还在用肉眼查找吗?或者你杀鸡用牛刀Find Usgae?其实你的需求就是把这个变量全部给我打个标签,我想直观的知道它在哪。

  • Mac: cmd + shift + F7
  • Win/Linux: ctrl + shift + F7

这个键功能远不止这个!

  1. 如果你高亮return或者throw,那么会把这个方法所有的返回点高亮出来!
  2. 高亮某个类的extends或者implements会把这个类Override的方法高亮出来
  3. 高亮import会把使用的地方显示出来

如果不想要高亮了,按下Esc就行。

显示方法调用树


方法调用树

在看源码的时候,你还是使用alt + F7ctrl + B在各个类之间来回穿梭吗?其实好多时候你就是想知道这个调用结构是怎么样的而已;谁是怎么一步一步滴调用谁的;这个快捷键会给你一个调用树。有了这个大菊观,继续探讨就很容易了。

快捷键: ctrl + alt + h

万能快捷键


万能快捷键

记得之前提到过一个万能重构键, 有关重构的一切操作都可通过它完成。那么Android Studio这么快捷键,这么多功能,臣妾怎么可能都记住!要是有万能钥匙就好了!That's it!

使用这个快捷键,你想到什么功能,打开它搜索就可以了;打个比方,我想看看Java的for each循环和普通的for循环底层是不是同一个实现;那么我就需要看虚拟机字节码了;我记得有这个功能但是不知道快捷键是啥;OK,Cmd + shift + A,输入bytecode:


PS:(我用的Intellij IDEA,Android Studio没有集成bytecode功能,可能搜索不到)

好了,其实所有的快捷键的功能都可以用这个搜索到~~实在记不起来也就用万能键吧!




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值