Android Studio 常用高效快捷键
整理
Android群英传
和网上出现的比较完整AS
的快捷小技巧.mac
版已测,win
大部分已测试. 最后有一个整理的完整快捷键表格
. win也好mac也好, 如果快捷被修改还是错误, 都可以通过提供的Keymap中的关键字
来进行重设.
图中gif
如果看不清, 放大页面即可.
<a name="1"/>
常用小操作
<a name="2"/>
单词选择
一般IDE
通过option + 方向键左右
(win为ctrl + 左右方向键
)对光标进行单词的跳动, 但是由于我们使用驼峰式命名较多, 默认的会导致由多个单词组成的驼峰式的首尾跳转. 还好AS
可以对这种风格进行设定.
默认效果
修改后的效果
修改步骤
打开偏好设置如图片设置
注意: (感谢楼下朋友的留言,指出这个问题)
如果你仍然希望当鼠标在单词上双击之后选中整个单词,需要作如下设置:
- File | Settings 打开设置
- 选择 Editor | General
- 取消选中 ‘Mouse’ | ‘Honor Camel Humps words settings when selecting on double click’
<a name="3"/>
显示最近操作, 修改的文件
例如: 我打开了main_activity.xml
布局文件, 然后关闭页面. 这个时候Command + E
, 就会如下显示之前的操作文件.
那么如果要查看之前修改过的文件, Command + Shift + E
即可. 可以配合Control + Tab
进行快速界面的切换.
快捷键
- 最近操作
-
Command + E
(mac) -
ctrl + E
(win)
-
- 最近修改
-
Command + Shift + E
(mac) -
ctrl + shift + enter
(win)
-
<a name="4"/>
文件查找
search Everywhere
项目中的全局查找功能文件功能
查找类文件
-
command + o
(mac) -
ctrl + n
(win)
默认只是在项目代码中查找类文件, 如果需要查找sdk
或者类库中的相关类. 再按一次快捷键, 或者勾选下图选项搜索全局类文件
查找文件
这个级别比上面那个更广. 包括所有文件, 如xml
等.
-
command + shift + o
(mac) -
ctrl + shift + n
(win)
如上如果需要搜索类库或者源码, 请在按一次快捷键, 或者勾选查找类
给出图中的选项.
<a name="5"/>
操作记录
在浏览代码结构的时候, 很多时候总是会跟进许多类里面, 如果想回到之前浏览调转点. 那么这个快捷键你就必须要记住.
-
Command + Option + Left\Right
或者command + [
,command + ]
(mac) -
ctrl + alt + Left\Right
(win)
<a name="6"/>
移动行
这个不用太多介绍, 就是整行的上下移动.
-
Option + shift + 方向键上\方向键下
(mac) -
alt + shift + 方向键上\方向键下
(win)
<a name="7"/>
查找方法调用处
场景: 查找一个方法在何处被调用, 或者一个ID在哪里被引用. 选中这个方法右键, 选择Find Usages
即可.
快捷键:
-
option + F7
(mac) -
alt + F7
(win)
<a name="8"/>
方法的跟进
方法总是伴随着调转, 我们也总是会对方法的内部查看细节. 常用的办法是按住Command 并点击方法名
的方式.
也可以在光标所在处直接通过Command + B
进行方法内部跟进.
-
Command + B
(mac) -
ctrl + alt + B
(win)
<a name="9"/>
显示方法的参数
当我们使用一个方法的时候, 会在刚开始的时候显示出所有的参数. 但是过一会可能就不存在了. 这个时候如果你想知道下一个参数是什么类型, 或者看一下所有参数.
快捷键:
-
command + P
(mac) -
ctrl + P
(win)
如果你还想查看一下方法的文档, 不用跟进源码, 直接F1
键即可显示出文档.
<a name="10"/>
行的快速操作
快速删除行, 其实使用剪切功能就可以Command + X
快速复制行, 使用command + D
mac, ctrl + D
win
<a name="11"/>
多行操作
可能有时候我们会声明做一系列相关的变量为float
类型, 但是真实的需要的是int
类型. 这个时候就可以进行多重选择
进行整体修改. 如下图:
按住option
(win为alt
)键, 然后鼠标进行区域的选择. 然后进行对应修改即可.
你可能认为上面的必须要连续的才可以. 那么如果可以设置多个光标点
是否就可以满足你的问题了?
看下图:
-
option + shift + 鼠标点击
(mac) -
alt + shift + 鼠标点击
(win)
即可添加一个编辑光标
. 最后如果不需要那么就esc
即可关闭多余光标.
<a name="12"/>
快速补全完成
创建一个对象. 或者findViewById()
有时总需要移动鼠标或者光标到末尾进行分号
的补全. 这些都可以快捷键搞定. 当你用习惯之后, 会非常的方便好用.
-
command + shift + enter
(mac) -
ctrl + shift + enter
(win)
实现的功能
- 方法体大括号的添加
- 行尾分号的添加
- 自动格式化改行操作等
<a name="13"/>
代码提示
任何地方都可以调出的代码提示.
control + option + /
(不是默认, mac默认为control + space
). 这里要说的是. 代码提示之后一般都会回车键
确定. 当按回车键
的时候. 会保留光标之后的内容. 当有的时候我们并不需要. 这个时候你就可以使用table
键进行选择. 它会将后面的输入内容删掉.
win的快捷方式ctrl + 空格
(win同样大部分和输入法冲突, 请手动在AS设置里面keymap
项查找completion basic
手动修改快捷键)
快速生成变量
比如在方法体中logi
直接快速生成一个log
日志输出的模板, 但是TAG
这个常量还没有声明. 这个时候用光标移动到TAG
上. 使用快捷键提示即可快速生成.
-
option + enter
(mac) -
alt + enter
(win)
<a name="14"/>
变量的快速操作
上图使用了两次快捷键,
- 第一次: 跳转到变量的
声明处
-
command + B
(mac) -
ctrl + b
(win)
-
- 第二次: 跳转到变量类型的
定义处
-
command + shift + B
(mac) -
ctrl + shift + b
(win)
-
<a name="15"/>
代码折叠
对代码块进行折叠和展开.
-
command + 加号\减号
(mac) -
ctrl + 加号\减号
(win)
<a name="16"/>
预览方法定义
如果只想大体了解方法的定义, 而不需要进行方法所在源码类的跳转显示. 可以通过Command + Y
(win快捷键为ctrl + shift + I
)来进行预览
<a name="17"/>
粘贴板管理
对于复制粘贴. 我们习惯只是单次
的c+v
, 那么如果你想查看之前被覆盖了的复制过的
内容. AS
同样有复制粘贴板
来管理. 展示最近几次的复制内容.
-
command + shift + v
(mac) -
ctrl + shift + v
(win)
<a name="18"/>
拆分窗口
只需要在标签页上右键
. 选择split vertical\horizontal
.
<a name="19"/>
变量命名风格
对于成员变量
应该m
开头. 对于静态成员
通常是s
开头. 可以这样设置这个风格.
这样在输入一个变量的名字时, 就可以自动补全m
或者s
. 同时在Extra
代码的时候, 生成的代码都可以自动根据这个规则重构.
<a name="20"/>
查看大纲
当一个类很大的时候. 可以通过command + F12
(win为ctrl + F12
) 打开大纲界面. 展示全部的方法和成员变量列表.
并且支持模糊搜索. 来进行筛选显示. 可以快速的找到要搜索的方法集.
<a name="21"/>
书签
在浏览大型代码, 或者调试时. 有时可能会需要记住一些关键的代码或者方法. 这个时候就可以使用书签
. 来记录此关键代码. 只需要在点击需要标记的行, 并按F3
就会在左侧出现一个小对勾
. 这就说明已经打上了一个书签.
同时在Favorites
标签中, 也可以找到对应的Bookmarks
可以通过快捷键command + F3
(win为shift + F11
)快速调出书签面板, 进行后续的操作.
<a name="22"/>
快速重构
<a name="23"/>
重构入口
当一个代码片段准备重构的时候. 可以使用control + T
(win为ctrl + alt + shift + T
)打开重构入口. 或者右键单击
选择Refactor
显示重构界面.
这里有很多方便的功能. 提成方法等等.
<a name="24"/>
surround With
当对一个段代码进行, 条件包裹, 捕捉异常, 循环, Runnable等. 可以直接使用快捷的方式, 而不需要手动生成条件在进行代码块的复制-粘贴
快捷键
-
command + option + T
(mac) -
ctrl + alt + T
(win)
<a name="25"/>
Extract
你可以经常使用它,提取出一个方法.
不仅仅如此, 你还可以对xml
中的多个控件相同的属性进行抽取为style
快捷键:
-
ctrl + alt + shift + T
(win)
是不是很爽?
这是其一, 对于xml
不仅可以抽取Style
, 还可以抽取布局Layout
而代码中, 可以提取各种变量, 参数, 长廊.
<a name="26"/>
代码模板
AS
中已经内置了很多代码模板, 你可以很嗖嗖嗖的就完成之前倒背如流的代码. 如下一小部分
通过快捷键可调出这些代码模板
-
command + J
(mac) -
ctrl + J
(win)
<a name="27"/>
代码分析
Google
提供了很多代码分析工具, 这些工具都集中在顶部菜单栏的Analyze
中.
<a name="28"/>
Inspect Code & Code cleanup
Inspect Code
可以让IDE
分析整个工程. 类似于Lint
分析, 并会给出大致修改意见等
Code cleanup
功能可以进行自动的代码修复.
<a name="29"/>
Dependencies
通过Analyze
中的几个Dependencies
选项. 可以快速分析项目的依赖.
<a name="30"/>
方法调用栈
对于某些方法来说, 查看它被调用的地方和调用的顺序是非常重要的. 可通过control + option + H
快速查找方法调用栈.
<a name="31"/>
断点调试
<a name="32"/>
快速断点
条件断点
. 主要用在循环体内. 一个循环10次的for
. 只想在第8
次进入断点.
和普通断点
相似, 一样先声明一个断点. 然后在普通断点
上单击鼠标右键
. 在弹出的菜单填写断点条件即可. 如下:
上面图中Enable
可以控制启用
, 还是停用
一个断点.
临时断点
. 如果需要一个只执行一次的断点. 执行完之后断点自动取消. 那么可以通过快捷点将当前行作为临时断点.
command + option + shift + F8
ctrl + alt + shift + F8
为了篇幅不是很长, 调试的部分贴一个讲解很详细的帖子
<a name="33"/>
快捷键查找表
速查表列出了keymap
快捷键的名称. 可以直接通过AS setting
界面搜索keymap
. 通过对应的快捷键名称来添加或者修改快捷键.
功能描述 | keymap对应名字 | Mac | Win/Linux |
---|---|---|---|
提示错误解决方案 | Show Intention Actions | option + enter |
alt + enter |
AS配置界面 | Preferences | command + , |
control+alt+S |
工程项目配置界面 | Project Structure | command + ; |
Control+Alt+Shift+S |
快速构成代码 | Code Generate | command + N |
alt + insert |
代码提示 | Completion/Basic |
control + space (mac会冲突, 手动修改) |
ctrl + 空格 (win同样大部分和输入法冲突, 手动修改) |
选择视图 | select in any view | option + F1 |
alt + F1 |
添加书签标识 | Toggle Bookmark | option + F3 |
ctrl + F11 |
向下移动一行 | Move Line Down | option + shift + Down |
alt + shift + Down |
向上移动一行 | Move Line Up | option + shift + Up |
alt + shift + Up |
注释代码 | Comment with Line Comment | command + / |
ctrl + / |
用代码模板包裹代码 | surround with Live Template | command + option + J |
ctrl + alt + J |
格式化代码 | Reformat Code | command + option + L |
ctrl + alt + L |
Copy Reference | Copy Reference | command + option + shift + C |
ctrl + alt + shift + C |
if/try等包裹代码 | Surround With.. | command + option + T |
ctrl + alt + T |
查看声明 | Declaration | command + B |
ctrl + B |
快捷向下复制行 | Duplicate Line or Block | command + D |
ctrl + D |
删除行 | Delete Line | command + delete |
ctrl + Y |
快捷最近打开 | Recent Files | command + E |
ctrl + E |
查找 | Edit/Find/Find | command + F |
ctrl + F |
文件方法结构 | File Structure | command + F12 |
ctrl + F12 |
显示书签 | Show Bookmarks | command + F3 |
shift + F11 |
代码高亮向下查找 | Move To Next Occurrence | command + G |
F3 |
代码高亮向上查找 | Move To Previous Occurrence | command + shift + G |
shift + F3 |
按照模板生成代码 | Insert Live Template | command + J |
ctrl + J |
定位到行 | Navigate/Line | command + L |
ctrl + G |
快速到行首/尾 | Move Caret to Line Start/End | command + Left/Right |
ctrl + Left/Right |
代码折叠/展开 | Collapse/Expand | command + 减号/加号 |
ctrl + 减号/加号 |
查找类 | Navigate/Class | command + O |
ctrl + N |
多行注释 | **Code/Comment ** | command + option + / |
ctrl + alt + / |
格式化代码 | Reformat Code | command + option + L |
ctrl + alt + L |
提示参数类型 | Parameter Info | command + P |
ctrl + P |
查找替换 | Replace | command + R |
ctrl + R |
查找命令 | Find Action | command + shift + A |
ctrl + shift + A |
拷贝文件路径 | Copy Paths | command + shift + C |
ctrl + shift + C |
移动代码块 | Move Statement Up/Down | command + shift + down/up |
ctrl + shift + down/up |
代码补全 | Complete Current Statement | command + shift + enter |
ctrl + shift + enter |
全路径查找 | Find in Path | command + shift + F |
ctrl + shift + F |
代码高亮 | Highlight Usages in File | command + shift + F7 |
alt + J |
窗口内所有代码折叠/展开 | Collapse/Expand All | command + shift + 减号/加号 |
ctrl + shift + 减号/加号 |
查找文件 | Navigate/File | command + shift + O |
ctrl + shift + N |
全路径中替换 | Replace in Path | command + shift + R |
ctrl + shift + R |
大小写转换 | Toggle Case | command + shift + U |
ctrl + shift + U |
显示粘贴版历史 | Paste from History | command + shift + V |
ctrl + shift + V |
快速查找定义 | command + space |
ctrl + shift + I |
|
粘贴 | Paste | command + V |
ctrl + V |
复制 | Copy | command + C |
ctrl + C |
去除无效包引用 | Optimize Imports | control + option + O |
ctrl + alt + O |
显示类关系继承体系 | Type Hierarchy | control + H |
ctrl + H |
快速覆写方法 | override Methods | control + O |
ctrl + O |
查找调用的位置 | Call hierarchy | control + option + H |
ctrl + alt + H |
添加书签 | Toggle Bookmark | F3 |
F11 |
扩大缩小选中范围 | Extend Selection/Shrink Selection | option + UP/Down |
ctrl + W + shift + W |
跳转到父类 | Super method | command + U |
ctrl + U |
关闭当前tab标签 | Editor Tabs / Close | command + W |
ctrl + shift + a |
关闭除编辑窗口的其余窗口 | Hide All Tool Windows | command + shift + F12 |
ctrl + shift + F12 |
预览方法定义 | Quick Definition | command + Y |
ctrl + shift + I |
返回光标最后编辑位置 | Last Edit Location | command + shift + delete |
control + shift + Backspace |
调到代码块首部/尾部 | Move Caret To Code Block | Option + Command + [ 或者 ] |
Control+[ 或者 ] |
重命名 | Rename | shift + F6 |
shift + F6 |
抽取方法 | Extract Method | command + option + M |
control+alt+M |
抽取变量 | Extract Variable | command + option + V |
control+alt+V |
抽取字段 | Extract Field | command + option + F |
control+alt+F |
抽取常量 | Extract Constant | command + option + C |
control+alt+C |
抽取参数 | Extract Parameter | command + option + P |
control+alt+P |
重构入口 | Refactor This | control + T |
ctrl + alt + shift + T |