工欲善其事必先利其器
基本概念
IDEA 没有类似 Eclipse 的工作空间的概念(workspace),最大单元就是 Project。这里可以把 Project 理解为 Eclipse 中的 workspace。Module 可以理解为 Eclipse 中的 project。一个 工程(Project) 下可以创建多个 模块(Moudle)。
- src 目录,用于存放代码
- .idea 目录和 project01.iml 文件都是 IDEA 工程特有的。
- 删除 module ,这样不会删除代码文件,只是从 Project 中移除组织关系,如下图:
系统设置
设置显示收藏栏等工具栏
取消更新
取消 IDEA 自动更新,避免引入不稳定的问题:
设置Tab为4个空格
Editor->Code Style->Java/Python,不要勾选Use Tab character
支持滚轮调节字体大小
Editor->General,勾选 Change font size(Zoom) with Command+Mouse Wheel
鼠标滑过,显示文档
Editor->General,Show quick documentation on mouse move
,输入延迟时间。鼠标滑过类、方法时,显示文档说明
显示行号和方法分隔符
在 Editor->General->Apperance 中,勾选:
Show line numbers
显示行号Show method separators
这个是显示方法分隔符的,我没勾选Show whitespace
显示空格符号,针对 Python,「游标卡尺」的名号不是白叫的,所以,必须设置显示空格、缩进等
参考:
- 舒服的pycharm设置
给提示时忽略大小写
Java 是严格区分大小写的,未设置时,输入 str
时,它不会提示 String
,要想实现忽略大小写的情况它也能智能提示,可以进行如下设置,而且,这样设置它也不是完全按照首字母进行匹配了,比如你输入 hmap
时,也会看到 HashMap
的智能提示,相当方便。Editor->Genreral->Code Completion:
取消单行方法折叠的设置
IDEA 中对于单行方法会默认折叠,使代码更紧凑。但是我阅读代码时,不太喜欢这种默认设置。可以根据如下设置修改:
Settings->Editor->General->Code Folding->One-line methods,取消勾选即可
自动导包 import popup
Editor->General->Auto Import->Python->Show import popup
手动导包的快捷键是 Alt+Enter
设置换行符默认为LF
Editor->Code Style
页面不仅能设置换行符,还可以设置 wrap columns
。
参考:
- IntelliJ换行CRLF, LF, CR的解释和默认设置
设置 File Encodings
文件编码
Settings->Editor->File Encodings
,编码全都设为 UTF-8
。
不建议勾选 Transparent native-to-ascii convention
设置头信息
Settings->Editor->File and Code Templates-Files->Includes->File Header
设置如下模板
Python 头信息设置:
1 | #!/usr/bin/env python |
Java 头信息设置:
1 | /** |
自动编译
有时候我们需要操作 class 文件时,却忘记了对 java 类文件进行编译,从而还是对旧的文件进行了操作。
import 每个类而非整个包,少用通配符
settings > Editor > Colors Style > Java > Imports > Class count to use import with ‘*’
设置大一点。
当 Java 类中 import 某个包下的类超过这里设置的个数,就会换成用星号来代替,比如 import java.util.*
设置 Tab 标签页
File->Editor->General->EditorTable->Tab closing Policy->Tab limit
在 Windows->Editor Tabs
可以设置标签页的相关内容,比如:
Tabs Placement
放置位置,我勾选了Top
- 勾选了
Sort Tabs By Filename
- 勾选了
Open New Tabs At The End
- 取消勾选
Show tab in single row
,避免打开类文件多时,选择不方便
我设置最多打开标签页10个,同时将位置移到了右边,通过alt+←/→
可以切换工作区。默认是10,即最多打开十个窗口,再打开新的就会把之前的窗口T掉!
- IntelliJ IDEA设置打开窗口的数量
自定义 Terminal
settings->Tools->Terminal
Shell path
原来的值是:
C:\Windows\System32\cmd.exe
Windows
修改为:
C:\Program Files\Git\bin\bash.exe
修改为Git bash
的终端;"C:\Windows\System32\cmd.exe" /k ""%CMDER_ROOT%\vendor\init.bat""
修改为Cmder
的终端,这种方式就会弹出 Cmder 的窗口,需要配置系统变量CMDER_ROOT
,值为:D:\Green-SF\cmder
。
设置 Terminal 窗口字体和大小:Editor–>Color Scheme–>Console Font,在右侧面板修改Font为自己想要的字体。
参考:
- Pycharm官宣-Terminal
- Github-Run cmder inside IntelliJ idea
- Windows 上切换 Jetbrains IDE 的 terminal 为 PowerShell 或 cmder
版本控制下文件变化的显示
settings—Version Control—Show directories with changed descendants
开启后若想调整文件夹的显示颜色:settings—Version Control—File Status Color
打开内存使用状态
settings—Appearance & Behavior—Appearance—Show memory indicator
参考:
- 玄玉-idea配置小结 博主介绍的很详细
用 * 标识编辑过的文件
这样被修改的文件会以 *
号标识出来:
Editor –> General –> Editor Tabs,勾选 Mark modifyied(*)
脚本运行结束后留在命令行
这样脚本运行中的变量在脚本结束后还可以调用,调试时还是挺好用
- pycharm常用设置和技巧
添加 JavaDOC 注释
- 把光标停在类名或者方法名上,然后
Alt+enter
,出现几个选项,选择Add Javadoc
就 OK 了 - 默认
Fix doc comment
是没有设置快捷键的,我这里把他设置成Alt + M
参考:
- 开源中国-IDEA添加JavaDOC注释 方法 快捷键
生成 JavaDOC
Javadoc 用于描述类或者方法的作用,具体介绍,可查看CSDN-Javadoc 使用详解
1 | Locale:输入语言类型:zh_CN |
缓存和索引的清理
IDEA 首次加载项目时,都会创建索引。创建索引的过程,暂时不要去编辑代码,避免遇到未知问题。有时候意外断电或蓝屏,出现索引损坏情况,可以清除缓存和索引,还原成默认状态。
File-Invalidate Caches
这个会将本地修改历史也会清理掉,如果想要将这个数据保留,LocalHistory 需要提前备份:
1 | system 目录,系统文件目录,是 IDEA 与开发项目一个桥梁目录,里边主要有缓存、索引、容器文件输出等等 |
参考:
- Where is IntelliJ IDEA config stored in OSX?
- 官宣-Directories used by the IDE to store settings, caches, plugins and logs
显示窗口 split
有时候可以将当前窗口 split,可以垂直或者水平分割,方便阅读代码
省电模式
在菜单栏 File
下面有一个选项是 Power Save Mode
,这个叫「省电模式」,如果不小心勾选了这个选项,那么会关掉代码检查和代码提示等功能,所以需要注意。
快捷菜单
Mac 的 Command
键一般是对应了 Win 的 Ctrl
键,在 Win 上,还可以用 Alt+<n>
打开相关窗口,在 Mac 上同样要使用 Command+<n>
。
除此以外,还可以在 Settings-Keymap
中,设置快捷键、输入快捷键查看对应的功能。
快捷键设置
alt+r
:打开最近项目ctrl+shift+o
:打开项目- 自动补全快捷键,默认是
ctrl+空格
,这个和一些中文输入法的切换快捷键冲突了,于是,我多设置了一个ctrl+/
:
常用快捷键
在介绍常用快捷键之前,先看看这个快捷键 ctrl+shift+a
,Find Action 快捷键,输入关键词,不会的就问它,超级赞!!!★★★
alt+↑/↓
: 快速在方法间跳转 ★★alt+p
:打开Python控制台 ★★★alt+insert
生成代码(如 get, set 方法,构造函数等) 或者右键(Generate),在 Mac 上是ctrl+n
★★★alt+enter
万能键,任何地方都可以尝试使用,不同场景有不同的表现方式,比如自动导包等功能,不管出错了不知道怎么办,知道怎么办想这么办时都按下这个快捷键,有惊喜,万能纠错键 ★★★alt+f7
找当前变量、方法在哪些地方用了find usaged
★★★alt+f12
打开命令行终端(view->tool window) ★★★ctrl+space
万能提示键,基本代码补全ctrl+f4
:关闭当前页ctrl+f12
: 结构视图 File Structure,查看 class method field,阅读源码查看类方法时很方便 ★★★ctrl+home
、ctrl+end
回到页首/页尾,关键字Move Caret to Text End
或者 开头Move Caret to Text Start
,参考- 查看接口继承关系:
ctrl+h
查看类型继承关系type hierarchy
,只能查看向上向下继承关系,而不能看实现了哪些接口。查看继承关系,右击,点击 Digram 查看;ctrl+alt+h
查看函数调用层次结构关系call hierarchy
,可以看到函数被哪些地方调用了,但是需要谨慎,部分人不会注意到后面的调用次数!为了防止遗漏,建议使用alt+f7
这个快捷键 ★★★ctrl+alt+b
查找接口的实现类
- 注释
ctrl+/
注释ctrl+shift+/
多行注释
ctrl+u
查看当前方法的父方法super method
,比如 service 的实现类中,跳转到覆盖的接口方法ctrl+d
复制当前行 ★★ctrl+e
打开最近文件 ★★★ctrl+p
有时候敲了方法,忘记方法可以使用什么参数,那么这个快捷键可以显示parameter info
- 删除当前行
ctrl+y
删除当前行 ★★★ctrl+x
剪切(会删除当前行)★★★
ctrl+w
不断按下这个快捷键,选择代码块范围逐步扩大;★★★- 换行
shift+enter
向下另起一行 ★★★ctrl+alt+enter
向上另起一行 ★★★
crtl+q
查询documentationctrl+鼠标点击
查看内置函数啥的ctrl+alt+←/→
快速跳转光标刚刚所在行 ★★★ctrl+alt+b
所有的实现类(Implementation)★★★ctrl+alt+h
谁调用了这个方法,查看调用层次(Call Hierarchy)★★ctrl+alt+L
,格式化代码(Reformat Code) ★★★ctrl+alt+o
优化 importsOptimize Imports
,优化导入的类和包 ★ctrl+shift+enter
补全语句,complete current statement
不管光标是不是在行尾,可以补全必要的字符,比如行尾的分号 ★★ctrl+shift+b
查看接口中方法的实现方法;ctrl+shift+u
:大小写转换,在Edit->Toggle Case
中能看到选项 ★ctrl+shift+v
:从最近的缓冲区粘贴ctrl+shift+backspace
快速跳转到最后修改的地方 ★★★ctrl+shift+v
在 Pycharm 中,访问历史粘贴板 ★★ctrl+shift+/-
代码块折叠★ctrl+alt+shit+j
多目标选择选择的词,或者用alt+鼠标点击
也可以实现效果,Select All occurrences
★★ctrl+alt+shit+t
重构利器shift+f6
:文件重命名 ★★★shift+f2
:跳转到上一个高亮错误 或 警告位置- 搜索
shift
双击,搜索一切,不管是 IDE 功能、快捷键、文件、方法、变量,它都能搜索,使用频率很高的一个快捷键!可以按最近使用过的文件名, 类名, 方法名等去搜索定位! ★★★ctrl+n
:快速按照名字搜索类ctrl+shift+n
:快速搜索文件ctrl+shift+f
: 在整个项目中 或 指定目录里 进行全局搜索 ★★★ctrl+alt+shift+n
:快速搜索函数
参考:
- 极客学院-IntelliJ IDEA 使用教程-快捷键
alt+enter 快捷键的妙用
万能接错/生成返回值变量。创建对象时,可以先 new
后alter+enter
,IDEA 会自动补全,直接让你输入对象名:
其他
scroll from source
,点击这个按钮,可以快速跳转到打开的文件所在的文件夹中,非常有用提高效率的按钮 ★★★
模板
模板:
- Editor->Live Templetes,可以做一些用户的定义,可修改
- 关注
iteration
- 关注
other
- 关注
output
- 关注
plain
- 关注
- Editor->General->Postfix Completion 不可修改
常用模板
psvm
再按 Tab 生成 main 方法,或者,输入 main 之后,再按ctrl+j
sout
输出函数soutp
打印函数的形参soutv
打印变量值,就近的打印变量的值;soutm
打印方法的名字xxx.out
打印某变量 xxx 的值;
fori
循环,按tab/enter
进入下一处修改itar
循环控制语句是xxx.length
iter
增强 for 循环(for each
)users.for+tab
快速生成 users 的增强 for 循环
list.for
集合list.fori
list.forr
逆序遍历,倒序遍历
ifn
条件判断,判断等于null
inn
不等于null
prsf
私有静态的常量psf
生成public static final
psfs
生成public static final String
快捷键 ctrl/command+j
可以查看有哪些缩写字符。
更多关于模板的知识,点击官宣-live templates
参考:
- IntelliJ 创建main函数快捷
修改模板
在 Live Templates 中修改模板
abbreviation
模板的缩略名称- template text` 模板的 diamante 片段
- 应用范围,点解 Define,选择 Java
添加一个 String 类型的带注释的模板,叫 prsc
:
1 | /** |
版本控制 VCS
添加 Github 账户
- Settings->Version Control->GitHub
为何要添加这个账户呢?
因为你就可以直接在 VCS 菜单栏中克隆代码库,多种方式:
Checkout from Version Control
-> Git- Git -> Clone 可以选择待下载的代码库
- File -> Project from Version Control -> Git
在 Github 创建仓库
VCS -> Import into Version Control -> Share Porject on GitHub
会将代码仓库提交到 GitHub 上,新建一个仓库
使用 Git 工具
- 查找背锅侠:Annotate/Blame
- 选中 Annotate 的 Commit,点击 Show Diff 观察差异(
Ctrl+D
) - 查看当前文件的历史版本:工具栏有个时间标志,Show History,查看最近是否有人修改过,通过
Ctrl+D
查看对比——Alt+H
- 高级筛选方式查找 commit 记录
- 显示差异: Show Diff ——
Ctrl+D
- 右键菜单中有一个 Open On Github,跳转到正在浏览的行所在的文件,方便分享讨论具体问题
调试&源码阅读技巧
step over
F8 下一步,当前断点如果是一个方法,不会进入方法体内;step into
F7 下一步,当前断点如果是一个方法,则进入方法体内,不过默认情情况下并不会进入java.*
等类的方法中。如果需要进入,可以在 Setting -> Stepping 中设置,排除即可force step into
Alt+Shift+F7 下一步,当前行如果是一个方法,强制进入方法体内;step out
Shift+F8 跳出run to curser
Alt+F9 运行到鼠标所在行,临时设置断点,有用resume program
F9 运行到下一个断点处,是不是有点像 pdb 中的 c 快捷键;stop
Command+F2 停止view breakpoints
查看所有断点,可以在运行时选择哪些断点暂停略过;mute breakpoints
所有断点失效/生效的切换;
调试器是什么
debugger 调试器,“除虫器”,调试器是用来告诉 JVM,请你在具体的哪个断点处停下来
- 堆 Heap: 所有对象都在堆上分配
- 栈 Stack:先进后出 LIFO 后进先出,
Last In First Out
- 线程:每个线程会有一个方法栈,出栈,后进先出,你自己的是 main 线程,观察这个方法栈即可;
- 栈帧 Stack Frame:方法栈中的每一个小方块,局部变量仅存在于方法的栈帧中,当方法运行完,栈帧就会被丢弃
可以修改执行结果,修改执行流程中的值:
- 右击调试器中的变量,
View/Edit Text
- 右击调试器中的变量,
Set Value
跳转到源代码
- 右击调试器中的变量,
Jump to Type Source
条件断点
在循环里增加条件判断,具体操作:在断点处右击,在某个条件下,实施断点。
查看表达式的值(可以查看已有变量的值):
线程断点
我们可以在断点上使用鼠标右键弹出断点设置框,在 Suspend 选择 Thread 选项。断点的多线程属性可以设置默认属性,点击 Make Default 按钮,设置默认 Suspend 属性
调用栈
ctrl+alt+h
快捷键
参考:
- IDEA的查询引用、调用关系图的功能
- Intellij IDEA神器常用技巧八-2018版本新增快捷键
- 挖掘IntelliJ IDEA的调试功能
DEBUG 模式下提前返回,而不终止程序
在 Frames 窗口下,选择当前的 Frame,右击,选择 Force Return
。
这个功能在调试的时候十分有用,既可节约运行的时间,避免程序重启,又可以避免程序走到后面不想调试的步骤去。
参考:
- Intellij IDEA 在DEBUG模式下如何不执行后续代码直接停止程序?
查看继承关系
快捷键:Ctrl+H
- IDEA查看接口或类的继承实现关系图
- IntelliJ IDEA 中如何查看一个类的所有继承关系(当前类的所有继承关系图)
还有一个更加厉害的功能 show diagram
,可以查看继承链。鼠标右键中有 Diagrams
的菜单。快捷键:Ctrl+Alt+Shift+U
- 蓝色实线是指继承关系
- 绿色实线表示的是接口的继承关系
- 绿色虚线是指接口实现关系
详细介绍参考:
- cnblogs-使用IntelliJ IDEA查看类的继承关系图形
设置程序环境变量
Run->Edit Configurations->Environment->Environment variables
1 | System.getenv("HOME_TEST"); |
Maven 设置
不推荐使用 IDEA 自带的 Maven 配置。在 Settings -> Build Excution Deployment -> Build Tools -> Maven 中修改:
Maven home directory
maven 安装目录User settings file
勾选 Override,改为自己的settings.xml
文件Local repository
依赖包存储位置
在 Settings -> Build Excution Deployment -> Build Tools -> Maven -> Importing 中:
- 勾选
Import Maven projects automatically
pom 文件增加了新依赖,会自动下载;
为了避免每次打开或者新建项目时,都要设置一次 Maven 的配置,可以给 IDEA 设置默认 maven 版本:
- 选择
File -> Other Settings -> Settings For New Projects... -> Build,Execution,Deployment -> Build Tools -> Maven
,找到 maven 配置的地方,选择需要默认配置的版本,保存。至此便完成了默认 maven 版本的配置。
参考:
- CSDN - IDEA 配置自定义maven
高效定位代码-无处不在的跳转
project之间跳转
ctrl+alt+左右方括号
:
查看快捷键
ctrl+shift+a
:搜搜快捷键
查看最近文件
ctrl+e
可以在ctrl+shift+a
:搜索reccent …
快速跳转到最后修改的地方
ctrl+shift+backspace
快速跳转到最后修改的地方
利用书签跳转
F11
:添加、取消书签ctrl+f11
:添加、取消有标记的书签ctrl+<n>
:跳转到有标记的书签处
添加收藏 Favorites
alt+shift+f
:add to favorities
编辑区和文件区的跳转
alt+1
进入文件区esc
:进入编辑区
精准搜索
类搜索
ctrl+n
:快速搜索类
文件搜索
快速打开指定的文件,方便★★★:ctrl+shift+n
函数搜索-symbol
ctrl+shift+alt+n
搜索 Maven 依赖包中的内容
有时候可能需要在源码分析时想要搜索 Maven 依赖包中的内容,只要如下设置即可扩大搜索范围:
ctrl+shift+f
->scope
->All Places
重构
Shift+F6
重命名
所有的文件,类名,函数名,属性名都可以重命名,值得点赞的是,只要你使用Shift+F6
重命名,所有使用过这个名称的地方都会跟着改变;函数的重构,
Ctrl+F6
重构函数
当你需要重构方法时,无论是增加参数,修改返回值,还是更改函数实现,只需要Ctrl+F6,就可以把所有用到此函数的地方一起重构
参考:
- 你们都在用IntelliJ IDEA吗?或许你们需要看一下这篇博文
列操作
- 选中单词转大写
多光标选中
- 多光标
按住 Alt
键,可以快速实现多光标、块选择。
界面中的基本功能
如果没有如老师那样的窗口,可点击view->tool buttons
打开
alt+<n>
快捷键 ★★★
如下图圈出的数字 n,可以使用alt+<n>
的方式快捷使用,替代鼠标操作。
注意,Mac 使用的是 command+<n>
方式;
打开收藏 ★★★
在一些调试的函数那里打断点,然后alt+7
收藏中就会方便的查看;
TODO
在项目中使用# TODO
,可以在Alt+6
中看到哪些待开发的备注
必备插件
关于插键,单独总结了关于插键的文章
FAQ
Q: intellj Idea中给新建的项目导入jar包?
- 推荐intellij idea Project Structure 讲解
Q: 找不到提示
IntelliJ cannot find any declarations
- Right-click src folder
- Mark Directory as > Sources Root
Q: IDEA编译通过能运行但是出现红色下划线
原因就是可能没有清除原来的历史缓存,导致一些错误,解决方法是:File-Invalidate Caches,然后重启IDEA
最后
近期由于微博图床挂了,所以,截图都看不了了,点击原文链接,可查看图片:
参考
- IntelliJ IDEA 使用教程
- 简书-IntelliJ IDEA 教程 技巧篇 作者写了一系列的总结
- 你有哪些想要分享的 PyCharm 使用技巧?
- IntelliJ IDEA神器使用技巧
- Java人员正确使用 IntelliJ IDEA的方式
- 挖掘IntelliJ IDEA的调试功能
- IDEA 注册-lanyu
- Github-judasn/IntelliJ-IDEA-Tutorial
- IntelliJ IDEA 2019.3.3 便携增强版
- 张振伟的博客/IDEA 作者写了很多 IDEA 使用技巧的文章,推荐