目录
常用快捷键
(一)查找/查看
双击 sft:搜索任意内容
cmd + F / cmd + R:当前文件查找/替换(cmd + G,sft + cmd + G:跳到下一个/上一个高亮的变量)
cmd + sft + F /cmd + sft + R:全局查找/替换
cmd + O :全局搜索类
opt + cmd + O :全局搜索类/方法/参数
cmd + E : 显示最近打开过的文件(打开以后会显示最近打开过的文件窗口,在这个窗口显示的时候继续cmd + E则会显示最近修改过的文件)
opt + fn + F7 (或者:cmd + 鼠标点击): 类/方法在全局项目中引用情况
cmd + fn + F7:类/方法在当前文件中引用情况
ctr + opt + H:方法被调用层级结构 (光标放在方法上才行)
opt + cmd + B :查看接口的实现
cmd + U:跳转至超类的方法
cmd + L :跳转至第几行
cmd + opt + ← / →(或者cmd + [ / ]) :返回到上次编辑位置
Cmd + Shift + Delete(opt + cmd + ← / →) 该操作将使得你导航到上一处你改动过的地方,这与点击工具栏上的返回箭头回到上一个定位位置是不一样的,该操作将会返回到上一个改动的位置。
cmd + fn + F12 :当前编辑的文件中结构快速导航
cmd + P :列出函数方法一系列的有效参数
fn + F2 :跳转至错误或警告
fn + F1 :查看类/方法的注释文档 (*注释的才行)
(二)控制操作
cmd + J :快速生成模版代码块,如if,while,return等等
cmd + N :快速生成getter/setter方法,构造方法,toString()方法等
sft + cmd + enter :if,else,for,while后面自动加“(){ }” ;行尾自动添加分号;即完成代码片段
ctr + O :引入重写父类的方法
ctr + I :引入接口或抽象类方法的实现
cmd + sft + V :将最近使用的剪贴板内容选择插入到文本
cmd + / :注释与取消注释,注释效果 //…
opt + cmd + / :注释与取消注释,注释效果 /…/
ctr + tab :切换文件
cmd + D :复制行
sft + ctr + J :合并行
ctr + alt + I :自动缩进对齐(选中)
opt + ctr + O :清除无效包引用
cmd + , :打开设置
cmd + “-”,cmd + “+” :折叠/展开代码块
cmd + sft + “-”,cmd + sft + “+” :折叠/展开全部代码块
cmd + L : 跳转至第几行,处理Bug时候,看到堆栈异常,然后可以快速定位到某行
cmd + W : 关闭当前激活的编辑窗口
Ctrl + B(或 Ctrl + 鼠标左键) : 快速定位变量定义的位置
(三)代码重构
1、opt + cmd + M : 方法重构,方法抽离
2、opt + cmd + P : 参数重构,将方法内变量抽离成方法参数
3、opt + cmd + V : 变量抽离
4、opt + cmd + F : 字段抽离,将方法内的变量抽离成类字段申明,简单说就是把变量的申明从方法内重构抽离到方法外
5、cmd + opt + C: 把一个局部变量修改成final static 的全局常量
6、sft + fn + F6 :类名/方法名/变量名 重命名操作
二、常用快捷代码指令
1、psf = public static final (prsf = private static final)
2、logd 快捷输出 Android Log (这里你可以先定义好常量 TAG。)
3、var 快速生成表达式返回值
orderListLogistics.getTransitList().var
List transitList = orderListLogistics.getTransitList();
4、fori / foreach 循环(或 对象.for会弹出循环遍历提示)
5、对象.nn 会弹出非空判断提示 ,对象.null 会弹出空判断提示,对于某个变量突然想起需要对其判断是否为空,那么使用 nn 和 null 就是绝好的选择了。
6、.try 对于会抛出指定类型的异常,catch 中会是指定的异常(例如上面的 FileNotFoundException),如果是没有异常抛出的语句,默认 catch 的是 Exception 异常。
7、logt 在方法的外面输入logt,这时就会以当前的类名作为值自动生成一个TAG常量
8、get / set 获取或者设置成员变量,建议修改getter模板cmd + N -> Generate -> Getter
此时先不要点击 OK 键,先点击右上角的 … 的框框图标,来修改模板文件:
此时只有一份 AS 默认的生成 Getter 方法的模板,要对这份模板进行修改,所以接下去可以选择新建一份新的模板文件或者在原文件上修改都可以,比如我新建了一份 NotNull_getter 模板文件
模板文件需要修改的地方就仅仅是在$(name){…} 代码块里的 return 生成规则,原本规则是统一返回字段值本身,根据规范新增两条规则:增加 String 类型和 List 类型的生成规则。以下是修改后的整个模板文件代码
#if($field.modifierStatic)
static ##
#end
$field.type ##
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if ($field.boolean && $field.primitive)
#if ($StringUtil.startsWithIgnoreCase($name, 'is'))
#set($name = $StringUtil.decapitalize($name))
#else
is##
#end
#else
get##
#end
${name}() {
#if ($field.string)
return $field.name == null ? "" : $field.name;
#else
#if ($field.list)
if ($field.name == null) {
return new ArrayList<>();
}
return $field.name;
#else
return $field.name;
#end
#end
}
生成的get方法