转自:https://www.jianshu.com/p/131c2deb3ecf

Idea常用技巧总结

1.无处不在的跳转

注:这里的快捷键是自己定义的,并非大家的都一样,可以通过findAction查找相应的快捷键。
菜单栏选择"帮助/help"→FindAction(ctrl+shift+A)快速搜索想要查找命令。
我这里只演示windows平台使用的快捷键(eclipse版本KeyMap)。

1.1 项目窗口间的跳转

  • 菜单栏选择window →Previous Project Window(ctrl+alt+左方括号)

1.2 文件之间的跳转

  • 查看近期浏览文件 findaction(ctrl+shift+A) →输入recent files
    • Ctrl+E
  • 查看近期改动文件 recent changed files ⇔ ctrl+shift+e
  • 修改位置跳转
    • 菜单栏"Navigate"→last edit location(ctrl+Q)
    • 反之 next edit location 可以自定义快捷键。
  • 浏览位置跳转(光标停留位置) navigate →back(alt+向左箭头)

1.3 项目区与代码编辑区的相应跳转

  • 项目区跳到右边代码编辑区
    • 按ESC键
  • 代码编辑区跳到左边项目区
    • Alt+数字1

1.4 书签之间的跳转

  • 利用书签跳转
    • findaction→bookmarks→toggle bookmark(ctrl+shift+F11)
    • 带标记书签 bookmarks→toggle bookmarks with Mnemonic(ctrl+alt+shift+F11)
    • 标签间跳转 用ctrl+作标记的数字(这里有个坑我按小键盘数字没反应,得按大键盘的数字才行)

1.5 收藏夹

  • 查看收藏夹 findaction→favorites(alt+2)
    • 可以看到我们的书签、收藏夹。
    • 单独添加到收藏夹(自定义收藏夹)
      • findaction → add to favorites(Alt+shift+F)
      • 我们可以光标定位到某个函数、或是某个类添加到自定义的收藏夹中(add to new favorites list)

1.6 插件

  • 调插件页面 findaction→输入plugins
  • 1.神器 emacsIdeas 安装
    • browse repositories →emacIdeas→install→restart idea(重启Idea)
    • 配置emacsIdeas快捷键 settings/keymap/emacIdeas文件夹下AceJumpWord添加对应的快捷键。
      • 按下刚配置的快捷键比如我这里shift+alt+K →按下要找的数字→输入任意高亮位置就跳转到对应位置了。

1.7 编辑区分屏

  • 垂直分屏
    • IntelliJ IDEA 支持对代码进行垂直或是水平分组,在打开的文件Tab上打开鼠标右键菜单,选择对应的split vertically功能即可
  • 水平分屏
    • 设为split horizontally即可。

2.高速定位代码

2.1 精准搜索

    • 菜单栏 →Navigate →Class(Ctrl+shift+T) 其中include none..勾上就可以关联到Jar包里所依赖的类。
  • 文件
    • 菜单栏 navigate →file(ctrl+shift+r)
  • 符号
    • 菜单栏 navigate →symbol(ctrl+alt+shift+n)
  • 字符串
    • 菜单栏 edit→find→find in path(ctrl+H)

3.代码小助手

3.1 列操作

  • 移动到当前单词尾部
    • findaction →输入move caret to next word(ctrl+向右箭头)
  • 选中到当前单词尾部 (ctrl+shift+向右箭头)
  • 当前单词设置大小写切换
    • edit→toggle case(ctrl+shift+u)
  • 移动到当前行首
    • findaction→输入move caret to line start(Home键)
  • 移动到当前行尾
    • findaction→输入move caret to line end(End键)
  • 将当前行的操作应用到相似行进行批量操作★
    • 菜单栏edit→find→select all occurrences(ctrl+alt+Y)
  • 格式化下代码
    • 菜单栏code→reformat code

3.2 live Template★

  • main
    • findaction→输入live templates→点击右上角“+”

    • 输入缩写main 简介public static void main

    • 输入方法体

        1. public static void main(String[] args){
          1. $END$
            1. }
            1.  
          1. 点击define→勾选java

          2. 输入main敲下回车即可。

        1. psfi
          • 输入最终模板(右边var1、var2确保输入一个参数回车后跳到另一参数输入)
              1. public static final int $var1$=$var2$;
              1.  
            1. 点击define→勾选java
          • psfs
            • 输入最终模板(右边var1、var2确保输入一个参数回车后跳到另一参数输入)
                1. public static final String $var1$="$var2$";
                1.  
              1. 点击define→勾选java
            • pic
              • 输入模板 pic(private int 带有注释)
                  1. /**
                    1. * $var1$
                      1. **/
                        1. private int $var2$;
                          1. $End$
                          1.  
                        1. 点击define→勾选java
                      1. pi、ps(private int ..和private String..)设置同上,略。

                      3.3 postfix★

                      • 使用此功能(神器,输入一些东西加上"."后自动转换成想要的模板)
                        • findaction→postfix completion→勾选enable postfix completion.
                          • 找到java→fori可以查看实现原理(下面仅列出几种常用的)。
                      • for循环(fori)
                      • 打印(sout)
                      • field
                        • 构造方法中.field会自动补充不存在的字段(详见wqjavase项目idea包下的B.java)。
                      • return
                      • nn(判断是否为空)

                      3.4 alt+enter智能提示

                      • 快捷键
                        • findaction→show intention actions(alt+anter)
                      • list replace
                      • 字符串format或者build
                      • 实现接口
                        • 新建接口→UserService→光标定位到接口名称→按下alt+anter
                        • 选择implement interface→输入实现类名称+选择创建位置
                        • 选择实现接口中的方法即可生成。
                      • 单词拼写
                        • 如果单词不记得如何拼写可以选中再按下alt+anter选择type change to它提示的英文单词进行矫正。
                      • 导包 ★
                        • 通过提示手动导包
                          • 按下alt+anter即可(我喜欢这种)
                        • 自动导包
                          • Settings→Editor→general→勾上auto import Optimize...

                      4.编写高质量代码

                      4.1 重构

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

                      5.寻找修改轨迹

                      5.1 git集成

                      • annotate
                        • 找出某行代码作者是谁
                          • 在代码行左侧右击annotate
                      • 移动所有改动之处
                        • findaction→previous changes(ctrl+alt+shift+向上箭头)
                      • 撤销操作
                        • findaction→revert(ctrl+z)

                      5.2 local history★

                      • 显示本地修改历史记录
                        • findaction→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即可。
                        • 关联sqlmap我就略过了。

                      7.调试程序

                      7.1 断点调试

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

                      7.2 任一处运行

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

                      8.其他操作

                      8.1 文本操作

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

                      致谢

                      作者:吴里庆庆
                      链接:https://www.jianshu.com/p/131c2deb3ecf
                      來源:简书
                      著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

                      Idea工具常用技巧总结的更多相关文章

                      1. sublime前端开发工具常用技巧

                        ctrl+N//新建文件夹ctrl+shift+p//打开命令行!,ctrl+E//快速生成html模板ctrl+E//自动补齐ctrl+P(#@)//goto 任何地方,其中#查找元素,@查找样式c ...

                      2. php 开发调试的常用技巧和工具​

                          nginx的access.log 作用: 记录一个页面请求中,服务器接收到的所用相关的url. 根据此log, 对服务器上调用了哪些服务,可以一目了然,快速理清业务关系,调试开发非常赞! 注意: ...

                      3. JavaScript常用技巧总结(持续添加中...)

                        在我学习过程中收集的一些常用技巧: typeof x !== undifined 判断x是否已定义: x === Object(x)  判断x是否为对象: Object.keys(x).length ...

                      4. AS技巧合集「常用技巧篇」

                        转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=254723&extra=page%3D2%26filter%3Dautho ...

                      5. iPhone不为人知的功能常用技巧,看完后才发现很多用iPhone的人实在是愧对乔布斯! - imsoft.cnblogs

                        很多人花了四五千买部苹果,结果只用到四五百块钱的普通手机功能. iPhone不为人知的功能,常用技巧: 网上搜集整理的iPhone快捷键操作,虽然表面上iPhone按键只有一个HOME键,大部分操作都 ...

                      6. 3D游戏常用技巧Normal Mapping (法线贴图)原理解析——高级篇

                        1.概述 上一篇博客,3D游戏常用技巧Normal Mapping (法线贴图)原理解析——基础篇,讲了法线贴图的基本概念和使用方法.而法线贴图和一般的纹理贴图一样,都需要进行压缩,也需要生成mipm ...

                      7. git常用技巧

                        一般的过程: ①如果还没有库先用 git clone 克隆一个库. ②使用 git checkout master切换到master分支. ③使用 git pull 同步远程master分支(即git ...

                      8. SHELL脚本编程的常识和VI常用技巧

                        来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...

                      9. SQLAlchemy基本操作和常用技巧

                        点击打开链接 Python的ORM框架SQLAlchemy基本操作和常用技巧,包含大量实例,非常好的一个学习SQLAlchemy的教程,需要的朋友可以参考下 python编程语言下的一款开源软件.提供 ...

                      随机推荐

                      1. 王者荣耀交流协会第二次Scrum立会

                        会议时间:2017年10月21号   17:00-17:22,时长22分钟. 会议地点:首尔名家里面的大桌子(PS:感谢组长大大请我们吃饭~)立会内容:每位同学汇报了今日工作(高远博与王超同学在今日有 ...

                      2. 团队Alpha冲刺(十)

                        目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...

                      3. ZOJ 1842 Prime Distance(素数筛选法2次使用)

                        Prime Distance Time Limit: 2 Seconds      Memory Limit: 65536 KB The branch of mathematics called nu ...

                      4. POJ 1971 Parallelogram Counting

                        题目链接: http://poj.org/problem?id=1971 题意: 二维空间给n个任意三点不共线的坐标,问这些点能够组成多少个不同的平行四边形. 题解: 使用的平行四边形的判断条件:对角 ...

                      5. (打补丁 )patch

                        前言: diff:逐行比较文件的不同,并且显示出来. patch: 打补丁工具,将补丁打到老文件里面,也就是diff左边的那个文件,使得老文件和新文件一样 格式:diff [选项] 老文件 新文件 格 ...

                      6. "firstday"-软件工程

                        阅读以下文章 http://www.thea.cn/news/terminal/9/9389.html    http://www.shzhidao.cn/system/2015/09/22/0102 ...

                      7. 【beta】Scrum站立会议第6次....11.8

                        小组名称:nice! 组长:李权 成员:于淼  刘芳芳韩媛媛 宫丽君 项目内容:约跑app(约吧) 时间:2016.11.8    12:00——12:30 地点:传媒西楼220室 本次对beta阶段 ...

                      8. 安恒杯-babysql

                        1. 库名 ?id= and extractvalue(,(select group_concat(0x3a,schema_name) from information_schema.schemata ...

                      9. php伪静态配置

                        配置虚拟主机和伪静态 1.开启Apache的rewrite模块 LoadModule rewrite_module modules/mod_rewrite.so 2.开启虚拟主机功能 # Virtua ...

                      10. 修改表中的enum字段

                        alter table 表名 modify 字段名 enum('system','audit','account','secadmin') DEFAULT NULL;