29. 列选择/块选择(Column Selection)

  • 描述:正常选择时,当你向下选择时,会直接将当前行到行尾都选中,而块选择模式下,则是根据鼠标选中的矩形区域来选择。

  • 调用:按住Alt,然后拖动鼠标选择。

  • 开启/关闭块选择:Menu → Edit → Column Selection Mode

  • 快捷键:切换块选择模式:Cmd + Shift + 8(OS X)、Shift + Alt + Insert(Windows/Linux);

30. 语句补全(Complete Statement)

  • 描述:这个方法将会生成缺失的代码来补全语句,常用的使用场景如下:

    • 在行末添加一个分号,即使光标不在行末;

    • 为if、while、for 语句生成圆括号和大括号;

    • 方法声明后,添加大括号;

  • 调用:Menu → Edit → Compelete Current Statement

  • 快捷键:Cmd + Shift + Enter(OS X)、Ctrl + Shift + Enter(Windows/Linux);

  • 更多:如果一个语句已经补全,当你执行该操作时,则会直接跳到下一行,即使光标不在当前行的行末。

31. 删除行(Delete Line)

  • 描述:如果没选中,则删除光标所在行,如果选中,则会删除选中所在的所有行。

  • 快捷键:Cmd + Delete(OS X)、Ctrl + Y(Windows/Linux)

32. 行复制(Duplicate Line)

  • 描述:复制当前行,并粘贴到下一行,这个操作不会影响剪贴板的内容。这个命令配合移动行快捷键非常有用。

  • 快捷键:Cmd + D(OS X)、Ctrl + D(Windows/Linux)

33. 编写正则表达式(Edit Regex)

  • 描述:使用Java编写正则表达式是一件很困难的事,主要原因是:

    • 你必须得避开反斜杠;

    • 说实话,正则很难;

    • 看第二条。

IDE能帮我们干点啥呢?当然是一个舒服的界面来编写和测试正则啦~ - 快捷键:Alt + Enter → check regexp

34. 使用Enter和Tab进行代码补全的差别(Enter vs Tab for Code Completion)

  • 描述:代码补全时,可以使用Enter或Tab来进行补全操作,但是两者是有差别的。

  • 使用Enter时:从光标处插入补全的代码,对原来的代码不做任何操作。

  • 使用Tab时:从光标处插入补全的代码,并删除后面的代码,直到遇到点号、圆括号、分号或空格为止。

35. 提取方法(Extract Method)

  • 描述:提取一段代码块,生成一个新的方法。当你发现某个方法里面过于复杂,需要将某一段代码提取成单独的方法时,该技巧是很有用的。

  • 调用:Menu → Refactor → Extract → Method

  • 快捷键:Cmd + Alt + M(OS X)、Ctrl + Alt + M(Windows/Linux);

  • 更多:在提取代码的对话框,你可以更改方法的修饰符和参数的变量名。

36. 提取参数(Extract Parameter)

  • 描述:这是一个提取参数的快捷操作。当你觉得可以通过提取参数来优化某个方法的时候,这个技巧将很有用。该操作会将当前值作为一个方法的参数,将旧的值放到方法调用的地方,作为传进来的参数。

  • 调用:Menu → Refactor → Extract → Parameter

  • 快捷键:Cmd + Alt + P(OS X)、Ctrl + Alt + P(Windows/Linux);

  • 更多:通过勾选“delegate”,可以保持旧的方法,重载生成一个新方法。

37. 提取变量(Extract Variable)

  • 描述:这是一个提取变量的快捷操作。当你在没有写变量声明的直接写下值的时候,这是一个很方便生成变量声明的操作,同时还会给出一个建议的变量命名。

  • 调用:Menu → Refactor → Extract → Variable

  • 快捷键:Cmd + Alt + V(OS X)、Ctrl + Alt + V(Windows/Linux);

  • 更多:当你需要改变变量声明的类型,例如使用 List 替代 ArrayList,可以按下Shift + Tab,就会显示所有可用的变量类型。

38. 内置(Inline)

  • 描述:当你开始对提取操作有点兴奋的时候,突然觉得东西太多了,怎么办呢?这是一个和提取相反的操作。该操作对方法、字段、参数和变量均有效。

  • 调用:Menu → Refactor → Inline

  • 快捷键:Cmd + Alt + N(OS X)、Ctrl + Alt + N(Windows/Linux);

39. 合并行和文本(Join Lines and Literals)

  • 描述:这个操作比起在行末使劲按删除键爽多了!该操作遵守格式化规则,同时:

    • 合并两行注释,同时移除多余的//

    • 合并多行字符串,移除+和双引号;

    • 合并字段的声明和初始化赋值;

  • 快捷键:Ctrl + Shift + J;

40. 动态模板(Live Templates)

  • 描述:动态模板是一种快速插入代码片段的方法,使用动态模板比较有意思的是你可以使用合适的默认值将模板参数化,当你插入代码片段时,这可以指导你完成参数。

  • 更多:如果你知道模板的缩写,就可以不必使用快捷键,只需要键入缩写并使用Tab键补全即可。

  • 快捷键:Cmd + J(OS X)、Ctrl + J(Windows/Linux);

41. 上下移动行(Move Lines Up Down)

  • 描述:不需要复制粘贴就可以上下移动行了。

  • 快捷键:Alt + Shift + Up/Down;

42. 移动方法(Move Methods)

  • 描述:这个操作和移动行操作很类似,不过该操作是应用于整个方法的,在不需要复制、粘贴的情况下,就可以将整个方法块移动到另一个方法的前面或后面。该操作的实际叫做“移动语句”,这意味着你可以移动任何类型的语句,你可以方便地调整字段或内部类的顺序。

  • 快捷键:Cmd + Alt + Up/Down(OS X)、Ctrl + Shift + Up/Down(Windows/Linux);

43. 取反补全(Negation Completion)

  • 描述:有时你自动补全一个布尔值,然后回到该值的前面添加一个感叹号来完成取反操作,现在通过使用输入!代替enter完成补全操作,就可以跳过这些繁琐的操作了。

  • 快捷键:代码补全的时候,按下!即可(有时需要上下键选中候选项);

44. 后缀补全(Postfix Completion)

  • 描述:你可以认为该操作是一种代码补全,它会在点号之前生成代码,而不是在点号之后。实际上你调用这个操作和正常的代码补全操作一样:在一个表达式之后输入点号。

例如对一个列表进行遍历,你可以输入myList.for,然后按下Tab键,就会自动生成for循环代码。

  • 调用: 你可以在某个表达式后面输入点号,出现一个候选列表,在常规的代码补全提示就可以看到一系列后缀补全关键字,同样的,你也可以在Editor → Postfix Completion中看到一系列后缀补全关键字。

  • 常用的有后缀补全关键字有:

    • .for (补全foreach语句)

    • .format (使用String.format()包裹一个字符串)

    • .cast (使用类型转化包裹一个表达式)

45. 重构(Refactor This)

  • 描述:该操作可以显示所有对当前选中项可行的重构方法。这个列表可以用数字序号快速选择。

  • 快捷键:Ctrl + T(OS X)、Ctrl + Alt + Shift + T(Windows/Linux)

46. 重命名(Rename)

  • 描述:你可以通过该操作重命名变量、字段、方法、类、包。当然了,该操作会确保重命名对上下文有意义,不会无脑替换掉所有文件中的名字;

  • 快捷键:Shift + F6

  • 更多:如果你忘记了这个快捷键,你可以使用快速修复(Quick Fix)的快捷键,它通常包含重命名选项。

47. 分号/点 补全(Semicolon Dot Completion)

  • 描述:代码补全这个功能太棒啦!我们大概都对以下这种情况很熟悉:开始输入点什么东西,接着从IDE得到一些建议的选项,然后通过Enter或者Tab来选择我们想要的补全代码。其实还有另外一种方法来选择补全的代码:我们可以输入一个点(.)或者一个分号(;)。这样就会完成补全,添加所选字符。这在结束一条语句补全或者快速链式调用方法的时候特别有用。

  • 注意点:如果你要代码补全的方法需要参数,这些参数会被略过。

  • 快捷键:Autocomplete + “.” 或者 “;”

48. 包裹代码(Surround With)

  • 描述: 该操作可以用特定代码结构包裹住选中的代码块,通常是if语句,循环,try/catch语句或者runnable语句。 如果你没有选中任何东西,该操作会包裹当前一整行。

  • 快捷键:Cmd + Alt + T(OS X)、Ctrl + Alt + T(Windows/Linux)

49. 移除包裹代码(Unwrap Remove)

  • 描述:该操作会移除周围的代码,它可能是一条if语句,一个while循环,一个try/catch语句甚至是一个runnable语句。该操作恰恰和包裹代码(Surround With)相反。

  • 快捷键:Cmd + Shift + Delete(OS X)、Ctrl + Shift + Delete(Windows/Linux)


文章来自「AndroidDeveloper」,微信号「googdev」,意为google developer,如果觉得不错,不妨分享给你的朋友们。

AS技巧合集「编码技巧篇」相关推荐

  1. alert不会影响到页面中其他代码执行_JavaScript调试技巧合集——为什么不推荐使用alert调试代码?...

    导读 本文是<JavaScript调试技巧合集>系列分享中的一篇,笔者希望在每篇文章中介绍一个关于JS调试的小知识点,希望你在读完这个系列后,在调试技巧上能够更加运用自如.下面是知识点概览 ...

  2. Mac技巧合集第二期

    2013-01-03 元旦期间收到了很多信息,大部分都回复了.得益于大家的在其他平台的推介,订阅用户稳步增长,非常感谢. 很多人问为什么这两天收不到微信推送了,事实上我已经在上一条微信中做了解释.这也 ...

  3. stotybord如何添加子视图_Revit软件技巧合集(建筑构件、视图处理、建筑表现、高级技巧)...

    Revit软件技巧合集164套(建筑构件.视图处理.建筑表现.高级技巧) BIM技术在我国建筑行业受到了越来越多的关注,也得到了快速地发展.BIM应用软件也如雨后春笋般的涌现,随着时间的推移,revi ...

  4. 短视频运营技巧合集(上)

    短视频运营技巧合集(上) 大家好,我是我赢助手,专注于新媒体短视频去水印.去重和文案提取运营的自媒体!今天给大家聊一下短视频怎么运营. 短视频是近两年来非常火爆的短视频软件.因为传播速度快,用户粘度高 ...

  5. ⚡关于Eastmount博客「网络安全自学篇」系列重要通知!!!⚡

    为响应2021年9月1日施行的<中华人民共和国数据安全法>,以及<中华人民共和国网络安全法>.即日起Eastmount的博客「网络安全自学篇」系列将不再发布任何有关" ...

  6. 「第五篇」全国电子设计竞赛-电源题设计方案总结

    点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 0  前言 许多朋友给我留言说,有没有电源题目的一些文章可以参考. 为了给大家找更多 ...

  7. 「第四篇」电赛控制题可以准备一些什么?

    点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 0  前言 在我看来,其实控制题是较好做(混)的一种题型,你懂我意思吧.控制题简单概 ...

  8. 「第六篇」对于电赛,我们应该看重什么?

    这几天更新了一些关于电赛的帖子,有设计方案,也有一些经验贴.大家可以在下面的链接找到. 「第一篇」大学生电子设计竞赛,等你来提问. 「第二篇」全国一等奖,经验帖. 「第三篇」全国电子设计竞赛,这些你必 ...

  9. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17)...

    原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17) Appium是一个开 ...

  10. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15)...

    原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15) adb(Androi ...

最新文章

  1. 计算机英语unit,计算机专业英语Unit 7
  2. wifi无线上网技巧
  3. 陶哲轩实分析 定理 8.2.2 (无限和的富比尼定理) 证明
  4. [8086汇编]利用栈翻转内存数据
  5. Kotlin - 100%兼容java和android开发
  6. 理论 | 三天两夜,万字长文,吃透TCP/IP
  7. 微课|中学生可以这样学Python(5.8.2节):使用切片修改列表
  8. mysql 中间表的好处_MySql 使用中间表来提高统计查询速度
  9. java怎么给类中的私有变量赋值_java练习本(原每日一练)(20190430)
  10. matlab三边定位算法,利用matlab分别对三边测量定位算法和改进算法进行仿真和验证...
  11. 【功能测试】part1
  12. Unity的AudioMixer真香?
  13. 浏览器全面禁止第三方Cookie
  14. win10电脑亮度调节失灵(win10电脑亮度调节失灵戴尔)
  15. ltib常用命令详解
  16. 谷粒商城分布式基础篇1-个人版
  17. 嘿嘿!报错不断呀!快哉快哉,检测nginx配置文件时报错,整它!
  18. android 原生分享文件,Android原生文件分享
  19. matlab声音的滤波处理,MATLAB声音信号的采集与滤波处理
  20. System.Diagnostics.Process执行获取程序实时输出消息

热门文章

  1. 【linux】——FTP出现500 OOPS: cannot change directory的解决方法
  2. Makefile详解(六)
  3. jqGrid宽度自适应
  4. 智能家居实训系统的项目有感!
  5. poj 3628 Bookshelf 2 01背包!!!
  6. iOS的帮助网站(企业包发布)adhoc的测试
  7. SmartGit for Mac(图形化Git客户端)
  8. 如何在Mac上使用Memoji贴纸、屏幕效果、应用程序和Messages
  9. Texpad for Mac编辑器使用说明
  10. iClock时间菜单功能设置