您的位置:首页 > 移动开发 > Android开发

Android Studio快捷键

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

下文所有快捷键基于如下keymap

Windows: Default

Linux: Default

OSX: Mac OSX 10.5+

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



自动补全enter和tab区别

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

使用
Enter
会补全你选择的语句
使用
Tab
的话,会替换掉你之前在这里的内容(删除后面的语句直到遇到点号,逗号,分号)
这种情况我们还是会经常遇到的,比如要替换一个资源的ID(R.id.a_xxx_xxx),想必大多数人都是先选择
a.xxx_xxx
删除,然后输入新的内容,或者相反;其实这时候,用
Tab
才是最优雅的方式。

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


返回编辑器窗口



返回编辑器窗口

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

Esc
: 让编辑器窗口获取焦点,这时候就可以输入代码了
Shift + Esc
: 这个会让编辑器获取焦点,并且顺手帮你把刚刚打开的窗口关闭了。
个人喜欢第二种;Find Usage完毕了,
Shift + Esc
, 优雅~

Esc
: 返回编辑器
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

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

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

首先组合键都是
Cmd/Ctrl + Alt

然后提取变量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

这个键功能远不止这个!

如果你高亮
return
或者
throw
,那么会把这个方法所有的返回点高亮出来!
高亮某个类的
extends
或者
implements
会把这个类Override的方法高亮出来
高亮
import
会把使用的地方显示出来
如果不想要高亮了,按下Esc就行。

显示方法调用树



方法调用树

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

快捷键:
ctrl + alt + h


万能快捷键



万能快捷键

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

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



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

好了,其实所有的快捷键的功能都可以用这个搜索到~~实在记不起来也就用万能键吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: