IntelliJ IDEA工具常用技巧笔记

1.无处不在的跳转

注: 这里的快捷键是自己定义的,并非大家都一样,可以通过find Action查找相应的快捷键,我在这里只演示Mac系统下使用的快捷键,且大多数是默认的.(windows平台请跳转友链)

  • 项目之间的跳转: option+command+] 下一个项目; option+command+[ 上一个项目

  • 查找操作: 菜单->Help->Find Action (command+shift+A)

  • 查找最近浏览文件: Recent Files (command+E)

  • 查找最近修改的文件: Recent Edited Files (command+shift+E)

  • 跳转到上次修改的地方: 菜单->Navigate->Last Edit Location (command+shift+delete)

  • 跳转到上/下次浏览(光标停留)的地方: 菜单->Navigate->Back/Forward (option+command+←/→)

  • 利用书签跳转: F11添加删除书签; command+F11+数字可添加带数字的书签,使用control+数字可互相跳转

  • 收藏位置和文件: 查看收藏 command + 2; 添加收藏 option + shift + F (光标在任意位置是收藏文件,光标在方法名上是收藏方法)

  • 字符跳转插件 emacsIdea置跳转:

    • 配置emacsIdeas快捷键(设置/keymap/emacIdeas下AceJumpWord添加对应的快捷键| 按下刚配置的快捷键比如我control+F 再按下要找的字母| 输入任意高亮位置字母就跳转到对应位置了)
  • 编辑区和文件区来回跳转

    • 编辑区 -> 文件区 : command + 1
    • 文件区 -> 编辑区 : Esc
  • 利用vim进行多编辑区跳转(安装IdeaVim插件之后,有兴趣自行百度)

2.高速定位代码

  • 类:
    • 菜单栏 →Navigate →Class(command+N) 其中include none..勾上就可以关联到Jar包里所依赖的类
  • 文件:
    • 菜单栏 navigate →file(command+shift+N)
  • 符号(方法和属性):
    • 菜单栏 navigate →symbol(command+option+shift+N)
  • 字符串:
    • 菜单栏 edit→find→find in path(control+shift+F)

3.代码小助手:

3.1列操作

  • 移动到当前单词尾部:
    • find action →输入move caret to next word (option+→)
  • 选中到当前单词尾部 (shift+option+→)
  • 当前单词设置大小写切换:
    • edit→toggle case (shift+command+U)
  • 移动到当前行首:
    • find action→输入move caret to line start (command+←)
  • 移动到当前行尾:
    • find action→输入move caret to line end (command+→)
  • 将当前行的操作应用到相似行进行批量操作:
    • 菜单栏edit→find→select all occurrences (control+command+G)

★ 代码格式化 (option+command+L)

3.2模板 Live Template

  • main

    • findaction→输入live templates→点击右上角“+”
    • 输入缩写main 简介public static void main
    • 输入方法体
      public static void main(String[] args) { 
        $END$ 
      }
    
    • 点击define→勾选java
    • 输入main敲下回车即可。
  • psfi

    • 输入最终模板(右边var1、var2确保输入一个参数回车后跳到另一参数输入)
      public static final int $var1$ = $var2$;
    
    • 点击define→勾选java
  • psfs

    • 输入最终模板(右边var1、var2确保输入一个参数回车后跳到另一参数输入)
      public static final String $var1$ = "$var2$";
    
    • 点击define→勾选java
  • pic

    • 输入模板 pic(private int 带有注释)
      /**
      * $var1$
      **/
      private int $var2$;    
      $End$
    
    • 点击define→勾选java
  • pi、ps(private int ..和private String..)设置同上,略。

3.3 postfix

  • 使用此功能(神器,输入一些东西加上"."后自动转换成想要的模板)
    • find action→postfix completion→勾选enable postfix completion.
      • 找到java→fori可以查看实现原理(下面仅列出几种常用的)。
  • for循环(fori)
  • 打印(sout)
  • field
    • 构造方法中.field会自动补充不存在的字段(前提是构造方法的形参列表带这个字段和类型)
  • return
  • nn(判断是否为空)

3.4 option+enter

  • 快捷键
    • find action→show intention actions (option+enter)
  • 自动创建方法
  • list replace(作为形参传进方法的list,通过"list.for"+enter可生成for循环遍历list,意义不大)
  • 字符串format或者build
  • 实现接口
    • 新建接口→UserService→光标定位到接口名称→按下option+enter
    • 选择implement interface→输入实现类名称+选择创建位置
    • 选择实现接口中的方法即可生成。
  • 单词拼写
    • 如果单词不记得如何拼写可以选中再按下option+enter选择type change to它提示的英文单词进行矫正。
  • 导包 ★
    • 通过提示手动导包
      • 按下option+enter即可
    • 自动导包
      • Settings→Editor→general→勾上auto import Optimize...

4.编写高质量代码

  • 重构变量
    • 选中要重构的变量→菜单栏选择refactor→rename (shift+F6)
  • 重构方法
    • 选择要重构的方法名→菜单栏选择refactor→change signature (command+F6)→输入相关参数配置即可。
    • 另一种通过option+enter
      • 直接在调用时输入要添加的参数→option+enter →add 相应参数至方法即可。
  • 抽取
    • 抽取变量
      • 选中字符串中的变量→refactor→extract→variable(option+command+V);
    • 抽取静态变量
      • 选中字符串中变量→refactor→extract→Constant(option+command+C)
    • 抽取方法参数
      • 如果方法中有用到成员变量(如this.name)→refactor→extract→parameter(option+command+P)就可以将成员变量以入参的形式传进来。
    • 抽取函数
      • 将方法中的逻辑抽取为一个方法 refactor→extract→Method(option+command+M)

5.寻找修改轨迹

5.1 git集成

  • annotate
    • 找出某行代码作者是谁
      • 在代码行左侧右击annotate
  • 移动所有改动之处
    • find action→previous changes (control+option+shift+向上箭头)
  • 撤销操作
    • find action→ revert (option+command+Z)

5.2 local history★

  • 显示本地修改历史记录
    • find action→local history→show history
  • 点击箭头可撤销。
    • put label(类似commit提交注释的功能)

6.关联一切

6.1 与Spring的关联

  • 视频学习链接
  • 操作流程
    • file→project structure→facets→点击“+”→Spring到项目→点左下角加号→再勾上Spring配置文件即可(可以看到Springbean被哪里定义等信息)。

6.2 与数据库的关联

  • 数据库连接
    • view→tool windows→database
    • 按“+”→datasource→mysql→输入数据库名;用户名、密码测试连接出现Suqcessful即可

7.调试程序

7.1 断点调试

  • 打断点
    • run→toggle line breakpoint(command+F8)
  • 运行Debug模式
    • run→debug...(shift+F9)或者按小虫子
  • 按步运行
    • step over(F8)
  • 跳过断点
    • resume program(F9)
  • 查看所有断点
    • run→view breakpoints(command+shift+F8)
  • 禁止所有断点
    • debug窗口中左侧找到禁止标志(mute breakpoints)→F9跳过所有断点
  • 条件断点
    • 在断点上右击出现 condition 输入条件(如s.equals("wuqingvika"))
  • 表达式求值
    • 查看值★
      • run→evaluate expression(option+F8)
  • 运行到指定行
    • 在Debug窗口找到有个光标图标 run to cursor(option+F9)
  • setValue★
    • 在debug中只要选中(Variables中)要设置的变量按下F2设定想要设定的值即可。

7.2 任一处运行

  • 运行当前上下文
    • find action→debug context (control+shift+F9)就会运行光标就近处的方法
    • 注:如果光标在中间 那么两个都会运行
  • 在当前可运行列表中选择一个运行
    • option+shift+F9
  • 编辑当前运行
    • run→edit configurations→application→选择某个应用程序→在program arguments输入参数信息

8.其他操作

8.1 文本操作

  • 复制文件名
    • 直接点击文件名 command+c在文本编辑区command+v即可(或选中文件按F5)。
  • 复制文件全名
    • shift+command+c 再ctrl+v即可。
  • 复制多个文件名
    • 多次command+c 再shift+command+v选择要复制哪些文件名即可。
  • 结构图
    • 查看当前field、method大纲
      • navigate→File Structure(command+F12)
    • 查看maven依赖★
      • pom.xml中右击选Maven→show dependencies可以看到所有的依赖关系。
        • 可以按command+f进行搜索
        • 可以右击exclude进行排除
    • 查看类图★
      • 普通的子类名右击Diagrams→Show diagram(option+shift+command+U)即可出现类图。
    • 查看类继承结构★
      • find action→hierarchy actions→hierarchy(command+8)
    • 方法调用层次★
      • find action→call hierarchy(control+option+H)

致谢

该笔记总结自慕课网视频教程,感谢老师@简书闪电侠,受益匪浅,传送门

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容