04-efficiency

1. 菜单栏

菜单栏
File文件操作
Edit文本操作
View界面视图操作
Navigate项目工程的跳转(搜索)
Code原码文件的操作
Analyze对项目的依赖关系进行简单的分析
Refactor(Refactor)重构(Extract)抽取函数、方法、静态类
Build项目是工程文件可以去构建
Run运行、调试
Tools亮点,提供了大量的工具
VCS版本控制

2. 高效定位代码

1. 跳转

1. 项目间

  • cmd + `

2. 文件间

Find action: cmd + shift + A

快捷键
Recent filecmd + E
Recent change filesopt + shift + C
Select Previous TabCtrl + 左 右

3. 方法调用,变量使用

快捷键
DeclarationCmd + B
Implementation(s)Cmd + opt + B

4. 浏览、修改位置

5191711456392_.pic
5201711456397_.pic

5. 书签

Toggle Bookmark: F3

Show Toggle Bookmark: cmd + F3

5211711456403_.pic

6. 收藏位置和文件

5221711456407_.pic

7. 字符跳转神器跳转

5231711456412_.pic

8. 编辑区、文件区

项目 版本控制 运行 调试 终端 编辑器 Cmd + 1 9 4 5 F12 esc

9. vim进行多编辑区

10. 高亮

Go to next highlighted element usage ctrl + opt + 下

5241711456419_.pic

2. 精准搜索

1. 类

cmd + O * 2

5251711456425_.pic
  • 可以将jar包中的类也搜索出来。
5261711456429_.pic

2. 文件

5271711456435_.pic

3. 方法、属性

  • cmd + opt + o

4. 字符串

5281711456440_.pic
5291711456446_.pic

3. 代码小助手

  • 对代码进行批量编辑,重复性的代码通过模板技术来生成

1. 列操作

5301711456451_.pic

move caret to next word

Move caret to line start

大小写切换

5311711456456_.pic

2. Live template

  • Double shift => live templates
    • Psfi
    • Psfs
    • Pi(c)
    • Ps(c)
5321711456461_.pic

3. Postfix

.var	    .sout	.for  =  .iter
.new	    .soutv	.fori
.cast	    .soutf
.castvar	.soutm

.if	    .field	.try
.else	.return	.synchronized
.null	.format	.while
.nn  =  .not


"name : %s , age : %d ".format
String.format("name : %s , age : %d", |);
String.format("name : %s , age : %d ", "name", 10) => cmd + opt + V
String format = String.format("name : %s , age : %d ", "ooxx", 10);


String name = "name";
int age = 10;
String format = String.format("name : %s , age : %d", name , age);
5331711456470_.pic
5341711456476_.pic

4. Intention action

Double shift => show intention action

5351711456481_.pic

1. 自动创建函数

String name = “lisongtao”;
f1(name);

2. list replace

  • fori自动换成for-each

3. 字符串拼接

5361711456486_.pic
image-20240326205043265

4. 创建接口实现类

  • caret定位到接口名上

5. 单词拼写

6. 导包

5. refactor & extract

1. 重构

1. 重命名
5371711456492_.pic
2. 重构方法
1. cmd + F6
5381711456496_.pic
2. Opt + enter
  • Opt + enter直接在调用的方法改

2. 抽取

1. 抽取变量
  • cmd + shift + V
user
User.new
new User()                  // cmd + shift + V
User user = new User();

System.out.println("taotao");
String taotao = "taotao";
System.out.println(taotao);
5391711456501_.pic
2. 抽取静态变量
5401711456505_.pic
3. 抽取成员变量
5411711456509_.pic
5421711456514_.pic
4. 抽取方法参数
5431711456518_.pic
5441711456522_.pic
5. 抽取函数
  • 选中分离的代码
5451711456526_.pic

6. 修改历史

1. git集成

1. Git Blame
image-20240820192356903
2. 移动所有改动之处
  • 行数栏中,可以看到版本控制的:增、删、改、查
5461711456532_.pic
3. Revert
  1. 在改动行,只撤销一部分的改动
  2. 在未发动行,撤销文件改动之处
  3. 在文件夹处、包处,撤销文件夹或包的所有改动
5471711456537_.pic

2. Local history

Double shift => local history || put label(给记录加标签)

7. 关联一切

1. Spring的关联

@Resource
UserService // 具体依赖的是哪个类,直接点击跳到的是接口。下面有几个实现类是不知道的。
5481711456543_.pic
  • 直接链接到自动注入的类
5491711456548_.pic
  • 跳转到相应的扫描配置文件
5501711456552_.pic
5511711456556_.pic
  • 可以直接点击跳转到你使用的类。在配置文件的扫描中也会出现
5521711456561_.pic

2. 与数据库的关联

  • 这个可以直接跳转到findById对应的xml文件的sql
5531711456567_.pic
  • sqlMap和数据库之间进行关联
5541711456571_.pic
5551711456575_.pic
5561711456580_.pic
  • 直接改sql也会提示要不要改数据库里的字段
5571711456584_.pic

8. Debug

5081711455326_.pic
R0VlQ0NtMjYyTW5kN2N5cWZSdFBERTEwdUhKdFplWWZQYmJaS3BkUTFRPT0=

Gutter + click1

  • Gutter + Opt + click1
  • Gutter + shift + click1
  • Quick Evaluate Expression Opt + click1 || cmd + opt + F8
5581711456589_.pic

1. 添加断点

5591711456593_.pic

2. 单步运行

  • F8

3. Resume

  • F9

4. 查看所有断点

  • Cmd + shift + F8
5601711456598_.pic

5. 禁止所有断点

5611711456602_.pic

6. 条件断点

5111711455346_.pic

7. 表达式求值

5681711456640_.pic

8. 运行到指定行

5691711456645_.pic

9. setValue

5701711456650_.pic

10. Drop Frame

R080ZVZOSWxhUVkzY1A2RzdYV0Q0aWpSUGlnUTNKMGl2Ykk0MW1ZPQ==

11. Force Return

T2dkVGJBR0FESDZWRmJVK1JmREl1U2pSUGlnUTNKMGl2Ykk0MW1iZ1RnPT0=

12. 多线程调试

eDFtLzdIOFlOZ1F3SlZ2UTFzY01iU2pSUGlnUTNKMGl2Ykk0MW1iZ1RnPT0=

13. 远程debug

1. 服务器项目加参数
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8088 -jar ooxx-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=local
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8088
  1. jdwp:java debug wire protocol
  2. transport=dt_socket:以socket协议进行通信
  3. server=y:开启调试服务端
  4. address=4001:通信端口是4001
2. idea配置
VksrSDhmZGhiS2dRS3RmK2ZvbmxGeWpSUGlnUTNKMGl2Ykk0MW1iZ1RnPT0=
5161711455370_.pic

9. 其他操作

1. 文件操作

1. 新建文件
  • Ctrl + opt + N
5721711456661_.pic
2. 复制当前文件
  • F5
3. 移动当前文件
  • F6

2. 文本操作

3. 复制文件名

  • 在project中cmd + C

4. 复制文件完整路径

  • Cmd + shift + C

5. 复制历史,剪切板功能

  • cmd + shift + V

10. overview

1. field、method大纲

  • cmd + F12
5731711456667_.pic
5741711456672_.pic

2. maven依赖、类图

  • 安装Maven Helper
5751711456679_.pic
5761711456683_.pic
  • cmd + F
5771711456687_.pic
5781711456691_.pic
5791711456695_.pic
5801711456699_.pic

3. 类继承结构,方法调用层次

1. 类
5811711456704_.pic
2. 方法
  • 光标首先要定位在方法名上
5821711456709_.pic

4. select in

Opt + F1 + enter 快速跳到project对应的文件

5. Scratches

  • 全选 cmd + shift + N

4. Hands-on

1. lambda

x.lambda

() -> x

() -> {

}

2. pom.xml

image-20220905141518452

artifactId => groupId => version:全部为自动补全

image-20220905141717120

3. soutv

image-20220905142209116