请选择 进入手机版 | 继续访问电脑版

热点推荐

查看: 589|回复: 2

【Java8开发工具】IntelliJ IDEA 超实用技巧

[复制链接]
  • TA的每日心情
    开心
    前天 09:06
  • 签到天数: 364 天

    [LV.8]以坛为家I

    5万

    主题

    5万

    帖子

    16万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    162770
    发表于 2019-10-29 21:58:02 | 显示全部楼层 |阅读模式
    最近受部门的邀请,给入职新人统一培训IDEA,发现有很多新人虽然日常开发使用的是IDEA,但是还是很多好用的技巧没有用到,只是用到一些基本的功能,蛮浪费IDEA这个优秀的IDE。
    同时,在这次分享之后,本人自己也学习到了一些新的使用技巧,所以借着这次机会,一起分享出来。希望可以帮到一些人。
    基于的 IDEA 版本信息:IntelliJ IDEA 2018.2.2 (Ultimate Edition)
    知识点概览:
    • 高效率配置
    • 日常使用 必备快捷键(★★)
    • 查找
    • 跳转切换
    • 编码相关
    • 代码阅读相关
    • 版本管理相关
    • 编码效率相关(★★)
    • 文件代码模板
    • 实时代码模板
    • 其他
    • 代码调试 源码阅读相关(★★★)
    • 视图模式
    • 代码调试
    • ...
    • 插件方面
    • 插件的安装与使用
    • 插件推荐
    • 参考: q4 y1 F: v# I+ B7 G3 B

    高效率配置
    1. 代码提示不区分大小写
    Settings -> Editor -> General -> Code Completion

    # S% p  |! S1 @$ G& T3 U
    5 l9 n, p/ L1 ?; a, i
    1 F, W; e. u: e* o  `( h* G

    9 H4 v1 t* V  T
    (低版本 将 Case sensitive completion 设置为 None 就可以了)
    2. 自动导包功能及相关优化功能
    Settings -> Editor -> General -> Auto Import

    ; ?( ~. u9 R1 }% I7 i
    : K3 L2 w! r5 D, J. T' o

    6 u2 p/ g) d% `8 o8 Q+ |) z& G$ F$ b5 A* w
    3. CTRL + 滑动滚轮 调整窗口显示大小
    Settings -> Editor -> General -> Change font size (Zoom) with Ctrl+Mouse wheel

    6 u$ J' L# n0 m! t$ i* Y; N% ?; c, l2 E& K8 q

    ) K7 A/ Y) r$ g6 C
    7 J& t- H( X9 c# V+ F
    选择之后,就可以通过CTRL+滑动滚轮的方式,调整编辑器窗口的字体大小
    4. tab 多行显示
    这点因人而异,有些人喜欢直接取消所有tab,改用快捷键的方式,我屏幕比较大,所以喜欢把tab全部显示出来。
    Window -> Editor Tabs -> Tabs Placement,取消勾选 Show Tabs In Single Row选项。

    * l, U  y" b1 K) O" E  Y* m% J

    + Z: [; d5 T5 t2 I" V# D% d: `" d& V
    2 ?" {+ `; O) _- `/ w# `- c
    效果如下:
    , Q2 [5 F0 w' `- G
    % M# d( Q; f$ a$ u3 J( K
    5. 代码编辑区显示行号
    Settings -> Editor -> General -> Appearance 勾选 Show Line Numbers
    5 e% {2 G3 P0 V& e% [

    / _9 [5 W- X$ r4 N6 Z

    " v  F4 j; m5 L% }8 G7 W' _0 d/ I8 d& s  H5 b) ]2 E" b; x

    5 n4 v. p2 z+ g8 p, S: O6 K
    2 B- ^, K+ O% T8 K
    3 @4 {% Q( b5 c+ p

    日常使用 必备快捷键(★★)
    查找
    0 B/ g! z8 q4 W5 P' n3 n7 ]2 S5 d
    ! v, d  h% d/ Y. Q
    代码阅读相关
    + S; q' R, M+ N  W
    0 w7 E. }# X2 x5 v& s
    版本管理相关
    & B2 V2 J8 ?% S
    5 x, U) {. d2 E8 W

    编码效率相关(★★)
    文件代码模板
    Settings -> Editor -> File and Code Template

    / R  Y9 X% H/ L. _8 E# o
    , s7 l& M% b) g; J3 p+ h" p

    4 A2 U7 q  E7 P6 S  Q
    6 L/ w2 _! b& J, M
    在这里可以看到IDEA所有内置的文件代码模板,当你选择某个文件生成时,就会按照这里面的模板生成指定的代码文件。
    另外,你可以在这里设置文件头。

    0 W  e' w; h, ^# N! y$ G1 h4 F: B( j  S( q3 L

    7 q( F. M6 I4 R8 }$ [/ F2 Z; M% [$ h1 J& E! `0 r" D; }
    设置之后,效果如下
    # q; x. b/ y7 M% I% P! e, Z. {
    6 |0 q; d8 f1 f; @

    ; b9 ?; v/ p# \3 U* Y' |  Q( ^! K# a( i+ F
    实时代码模板
    IDEA提供了强大的实时代码模板功能,并且原生内置了很多的模板,比如,当你输入sout或者psvm,就会快速自动生成System.out.println();和public static void main(String[] args) {}的代码块。
    , P5 F; `9 p1 e3 q( z. b5 N1 b
    / w; _4 M+ h4 S" {
    4 o# Z) j8 b# M5 n8 z) [
    . x/ b3 S2 n# h' m) c7 u! z! ^! O
    这些的模板可以在Settings -> Editor -> Live Templates看到。使用者可以按照自己的使用习惯来熟悉相关的代码模板。

    ! B" F9 {" x* {; c1 e. j8 ]& C- r/ N( {+ n( `
    0 n" T5 @: b+ h4 }. `. s9 ?4 i

    5 e, W9 W, r1 \4 F- p8 Z
    定制代码模板
    IDEA也提供自己定制实时代码模板的功能。
    • 创建自己的模板库
    • 创建定制的代码模板6 q8 K6 M% ^  n$ B$ G

    " u8 v/ N& H+ Y! o5 V) {1 k6 F+ p0 ~  Z0 w2 {& K( `$ |
    ' l0 P3 I# c7 t
    ; c7 Q) b* R7 l0 n9 ?* l9 z
    图中的MyGroup就存放着我自己定义的代码模板。
    其他
    CRTL+ALT+T
    $ d0 S0 T9 E8 ~9 E  e, k

    4 A+ ^2 [8 o) c% r, d& t9 ?
    # r! P. S) J# P

    , V2 n7 _' X8 z3 w* d1 l# X
    Ctrl + Alt + T 提供的是代码块包裹功能 - Surround With。可以快速将选中的代码块,包裹到选择的语句块中。
    本地历史版本
    IDEA 自带本地版本管理的功能,能够让你本地编写代码变得更加的安心和方便。

    / J, `% }/ ?2 t" d- q6 C0 Y* T4 Z8 }" i6 p

    0 N: w3 L- a( W- N
    + B! r$ @6 D8 n$ I! }9 {
    代码调试 源码阅读相关(★★★)
    视图模式
    / Q' u3 T* I4 K+ u% [# ^

    ) Z) G8 p1 V: p  J2 N

    7 e9 E# b6 z5 E: G, m# M( T( ?
    ; @1 B& Z2 R$ t9 o& w) r+ ~# y0 H' C
    IDEA提供两种特殊的视图模式,
    • Presentation Mode - 演示模式,专门用于Code Review这种需要展示代码的场景
    • Distraction Free Mode - 禅模式,专注于代码开发! q9 u8 F& `& X0 L  L, h; r
    代码调试
    1. 条件断点
    IDEA 可以设置指定条件的断点,增加我们调试的效率。
    # g  a5 `! ]) y5 `' ^6 E1 a2 T' r
    3 F, r4 a( P6 Q/ y5 W

    9 {1 _) v! M1 b* j" i- a( W( c7 s
    , n# a& B# C3 R* @1 j+ p. w
    2. 强制返回
    IDEA 可以在打断点的方法栈处,强制返回你想要的方法返回值给调用方。非常灵活!

    1 j( x2 Z2 O1 x! c' U
    / ^) N1 n  y7 p% L
    # O3 p" C% B: }' L: {+ a( E2 t$ s! d% Y
    ' s9 e& e( ?& c- N4 U3 d- n

    . A# Y" i, t: j: s

    - f  O2 n4 t3 L) v1 o
    3. 模拟异常
    IDEA 可以在打断点的方法栈处,强制抛出异常给调用方。这个在调试源码的时候非常有用。
    - ~( g9 W/ Q* E9 W. |
    . r7 f& z3 K- \$ M& d' K" ?
    4. Evaluate Expression
    IDEA 还可以在调试代码的时候,动态修改当前方法栈中变量的值,方便我们的调试。

    ' m) M: f6 S: g  ~; w  `! L5 h; r7 ~6 U3 H/ d

    - n3 t. ^% p$ K4 S6 N/ W! o% p6 E5 f" U+ b- a

    插件方面
    插件安装
    File -> Setting -> Plugin
    插件安装,可以直接在IDEA的插件库中实时搜索安装。browse plugin repository
    对于网络不好的用户,可以登录官方插件仓库地址:plugins.jetbrains.com/idea,下载压缩包之后,选择install from disk
    插件推荐
    本人日常开发中使用的插件
    Alibaba Java Coding Guidelines
    阿里Java编程规约插件
    FindBugs
    代码缺陷扫描
    % b! F8 q8 }- P- ~- a5 }+ N

    ! Q- ~1 w- e" P% S$ `
    + O' l7 ]: k/ T* J' w% O0 [, O$ A( i: q1 p+ f' g6 s8 j: s
    . i. E5 u7 S" W9 G) r0 k1 R2 Y- t

    9 g" H" n% {# W2 P' L3 o1 R0 s
    PMD
    代码缺陷扫描
    InnerBuilder
    builder模式快速生成

      ?. P# v% A/ S$ A; L' T# w: S6 [8 ~2 F. }% {" N, Z# y
    2 n5 A" K; ?# R* g8 A2 c
    8 J1 ]2 i3 }. H6 F% ?" j
    lombok plugin
    lombok 插件
    maven helper
    maven 依赖管理助手 ,解析maven pom结构,分析冲突;

    : e% l& N: {# A) H3 v
    2 d  ~2 B9 O, m" _

    " ]) |4 G& C. L- p' r8 m% i, S. l
    ! Q% G: f; {! B9 X/ K$ D+ ], W5 K5 v1 a9 m1 u; d( ^& F
    8 M+ w3 M7 L3 u& l
    / }% a/ g5 s  n$ N( i( e
    Rainbow brackets
    让代码中的括号更具标识性
    + S+ S! a" A2 x# H$ k
    ! e/ Q, ^  H8 a6 b3 h; P
    2 P' c0 x  v4 a! ^% {* K! ~$ r' R! I3 Y

    9 J* [7 R7 c4 q2 u' |: ~
    String Manipulation
    String相关辅助简化,搭配 CTRL+W 、ALT+J等文本选择快捷键使用
    : L) J4 h$ Q2 b2 o* D
    5 d+ y  Y( O9 ^/ H/ A
    Translation
    翻译插件,阅读源码必备
    ) m3 n( x; t" e* u# Q& y, d
    % \; x% j* B" G: J" G" t

    & H% v- w6 f/ A$ X3 }/ m' |9 T& t% K% A: Z" t, Z

    / [5 O# y2 \. {1 S
    ! C( d+ n$ `1 D+ B* c# o% f0 C0 S

    7 A8 R6 r# F0 y  `6 {
    GenerateAllSetter

    4 ~6 u# v- q. y3 i- r
    . s( k& }2 Z: v3 f& Z
    Key Promoter X
    对你的鼠标操作进行 快捷键提示
    - W( W& h7 D3 F0 m2 V+ `

      f9 a0 g# o1 j( @

    ! P4 i. |# z3 k0 p( W8 C3 _
    ( Y+ `+ E7 B1 i
    GenerateSerialVersionUID
    Alt + Insert 快速生成SerialVersionUID

    ' I# h/ R: r. u! e& j6 t4 `
    ' Z2 M* U1 |0 ?2 K8 U- v4 D
      r) l  K5 {2 I5 F
    6 v' z* z! m3 e$ ]2 t' T7 e8 s- [
    GsonFormat
    2 Y# j& P8 @( C3 _2 e) ~
    % |0 b6 `9 d8 m% k
    RestfulToolkit
    • 快速跳转到Restful Api处( use: Ctrl(Command) + \ or Ctrl + Alt + N )
    • 展示Resultful 接口结构
    • http 简单请求工具
      - U1 n4 A: i  w: N$ s7 P, D% v

    1 d' P" g7 ?' d5 b: M
    . P$ v# ?4 h1 I5 l4 f
    + |- i( O! D# h
    ) i' C7 T) V- a

    3 d2 N% c. E: }& P* @

    ! ?0 ?5 n4 g* Z# k' i; g& c6 V" o) x% D! d/ g, v# W: q
    Material Theme UI
    本人自用的主题就是这个。

    . t, T% t: [7 E; M2 A; g; L
    3 \+ P8 ~9 f2 ]' f

    # z( r. {! n) g7 s. s
    ; A4 D/ r- J/ g* b- l! V% E& t
    MyBatis Log Plugin
    把 Mybatis 输出的sql日志还原成完整的sql语句,看起来更直观。
    $ U8 m& r  \; @& A7 ?+ y0 v: i# t
    4 }) ^% M7 q, y/ z; t

    2 k# T% H& t' K2 r. }! n5 N6 b. h- L  Q' h" X* T- \4 ?  m

    " c3 d( y* ~5 _; k5 R" |# Y' q
    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    131

    帖子

    266

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    266
    发表于 2020-3-14 10:33:59 | 显示全部楼层
    为保住菊花,这个一定得回复!
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    122

    帖子

    246

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    246
    发表于 2020-5-4 05:49:05 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表