IntelliJ IDEA使用技巧 (类比pycharm)
第1章 课程介绍
1)下载及安装2)界面介绍 ...
①界面中左右最边上的小窗口(旋转了90度的字体)都自带了下标,win下快捷键alt+index切换窗口 ②演示效果:模拟时钟,快捷键如,0到100的for循环:100.fori;输出:sout;Thread.sleep()等...
第2章 高效定位代码
1)无处不在的跳转
①快速切换文件,类等(recent
files & recently changed files): A.help→findaction(command+shift+A)后,搜索recent
files或...; B.command+E ②
A.返回到上一次编辑的位置:navigator→last edit location(shift+command+delete)
B.下一次编辑位置:navigator→next edit location(control+command+delete)
③ A.返回上一次浏览位置:navigator→back(alt+command+←) B.下一次浏览的位置:navigator→forward(alt+command+→)
C.②和③的区别在于,一个光标停留出编辑过,一个只是光标停留,未编辑。
④利用书签跳转 A.浏览源码或别人代码时,收藏对比或做标记(代码编辑框左侧行号右边点),toggle
bookmark,可用findaction搜索bookmark得到 B.bookmark最常用:alt+f3+【1,2,3...】以后在不是本类的其他地方,ctrl+【1,2,3】都能到此位置
⑤收藏位置和文件:command+2打开favorite,alt+shift+f收藏类和方法,收藏方法时光标移到方法名后面
⑥安装插件:help→findaction后,输入plugins回车后搜索插件名称安装。 ⑦编辑区跳转文件区:command+1,返回也是command+1或者esc键
⑧利用vim进行多编辑区跳转(分屏后左右跳转):要安装插件ideavim,先略后补
2)精准搜索 ①找类:navigator→class(command+n)(注:non-...打钩,意为在整个包里搜索) ②找文件:navigator→file(command+shift+n)
③找符号symbol(此意为方法和属性名):navigator→symbol(command+alt+shift+n) ④找字符串:edit→find→find
in path(ctrl+shift+f)注意有很多范围scope选项:match case忽略大小写;file mask指定在某类文件里去搜索...等 ⑤以上快速搜索功能的实现是源于做了索引;
第3章 代码小助手们
1)列操作(举例,枚举里批量把单词大写,按
的格式排列) ①选中一个单词:shift+alt+→或←,shift+command+→或←选中右边/左边光标处开始的本行所有内容。
所有字母转大 / 小写:edit→toggle case(shift+command+u) 批量选中多行的某一个同样的符号(比如:):edit→find→select
all occur(shift+command+g)
编辑完代码可能乱,code→reformat code自动整理。 2)live
template①perference(或shift+command+a)→live
templates→“添加,缩写,描述,text”自定义缩写,比如main( ) 3)postfix ①输入一个东西,按.会有提示,比如:100.fori(从0到100的for循环)
② new Date().sout(输出new Date())
③name.field(在方法里写this.name = name,但没有name这个成员变量时,用此方法生成) ④user.return(方法里返回user;差不多,
没简便多少)
⑤user.nn(if(user != null)。。。nn代表not null)
4)alter
enter
①show intention action提示②如自动生成方法:f1()
, alt+enter③实现接口:写好一个接口后,光标移到接口名首字母处alt+enter,按提示生成它的实现类④单词拼写:idea怀疑你的拼写错误,单词下方会有波浪线,这时光标移到但此首字母处alt+enter,会给出单词的提示⑤导包
第4章 编写高质量代码
1)重构 ①重构变量:shift+f6(即:rename)
②重构方法:方法定义时一个参数,引用时想起来应该是两个参,这时command+f6或者alt+enter都可以在原方法上加一个变量
2)抽取
第5章 寻找修改轨迹
1)Git的集成
①撤销:command+z 不在git下
②反撤销:shift + command + z 不在git下
③所有改动回到最原始的状态: git下,空白处,alt+command +z没试过。
2)local
history
①Local history 没有版本控制工具的时候自行进行版本控制
②Find action (shift+command+a)中查找local history,①选show history,点》可以撤销回改变前状态,即revert
③选put label添加到commit后的一个版本,local history查看时左边栏的右上角位置有label名,对应相应的某次commit
第6章 关联一切
①关联spring:
Controller层要依赖Service,Service有serviceImpl,要查看具体依赖的类(类似于eclipse中的按着ctrl点击进入实现类):
File-Project Structure(command +;)-facets-添加-spring(其他选项同理)-窗口右下角“unmapped...”,点击加号,OK。
回到Controller上,类和注入的Service属性所在行左边有图标,可以点击了看。
②关联数据库:
代码框右侧有database,new-datasource-…;并且还可以在右侧框统一管理修改表明,字段等,而不用带xml文档里去改(mybatis)
第7章 开始调试你的程序吧
A.断点调试
①添加断点:run-toggle line breakpoint(command+f8)
②断点调试:run-debug(点小虫子或ctrl+alt+d或者ctrl+d貌似也可以)
③断点运行:(即下一步)F8
④resume(重新开始,继续,恢复):run-resume program(alt+command+R或者F9)跳到下一个断点,如没有断点,直接输出
⑤查看所有断点:shift+command+f8(快捷键难记,debug时左下角有图标,不用记)
⑥断点调试时发现问题了,不想再继续debug时,禁止所有断点:mute breakpoints(同上,不用记)
⑦条件断点:打断点时必须满足某些条件,断点才会生效,如,在for循环内的某一行打了断点,有需求为当s=“haha”时才执行断点,这时command+shift+f8,condition里输入s.equals(“zhangsan”)此时断点标记上多了个问号。在debug中,假设其他地方没有断点了,shift+F9运行,当执行到s=zhangsan时,会停下来
⑧表达式求值:调试中,在断点处你想看看某个值等于多少,这时,选中变量,按run-evaluate expression(alt+f8),回车,查看result的内容就行了,这里expression里可以求值,比如选中list,在expression框中可以输入list.get(0),回车后result里就会有相应的值
⑨运行到指定行:断点在第二行,但你不想看第三四行,直接看第五行,这时光标放在第五行,debugger工具栏右侧有一个run to cursor(alt+f9)就跳过来了,中间的两行运行了,只是没显示过程
⑩setValue:在debug查看值得variables里选中list,按f2,这时可以动态改变list的值,用于后续的debug
B.run anywhere if you can
①运行当前上下文:要运行光标停留处的方法,debug context configuration(shift+ctrl+d),如果光标在两个方法中间的空格,则往上找到最近的context,这里指类,然后运行此类。这样不用右击run...或者在@Test中不用去选中方法名junit测试
②在当前可运行列表中选择一个运行:其实也就是右击空白处,run-debug,选中要debug的方法
③编辑当前运行:貌似没用,省略了
第8章 其他操作
8.1文件操作
①在编辑框中command+n新建方法(构造,重写等),ctrl+shift+n新建外部的类,接口等;选中类或接口delete删除类或接口
②添加文件,找到一个文件,修改小部分后保存在当前包下:打开要复制的文件,全选,参考①新建file,粘贴,选中相应同名字段,列操作,保存OK
③复制文件:选中类,command+c 或者 f5,copy class,改名就行了
④移动当前文件:鼠标拖动类 或者 在类的编辑窗口处直接f6,剪切
8.2文本操作
①复制文件名:command+c;复制文件路径:command+shift+c
②要复制n个文件名,可以每个文件都command+c,然后默认会放在剪切板中,shift+command+v
8.3结构图
①查看当前field,method:navigate-file structure(command+f12),其中m代表method,f代表field
②查看maven依赖:
A.maven的pom文件中一大堆的dependency,查找不方便,打开pom右击空白处,maven-show dependencies,通过拓补图展示出所有依赖,很牛的一个功能,
B.然后搜索command+n,然后选中双击就跳到在pom中的位置。拓补图中,点击连线,会变黄色,可以看到在哪个类中引进来的。
C.就在拓补图中就可以管理依赖,比如,右击某个jar文件-exclude,这时pom文件中会多出exclusion,表某某依赖除外
③类图大纲:在一个son继承father的例子中,在类上按下shift+alt+command+u可以查看整个类的继承关系的类图,看源码或看继承结构时非常有用,猴赛雷噶
④查看类结构图:类似③,光标停留在类名处,ctrl+h查看
⑤查看方法调用:如main中调用了其他方法,光标停留在main处,或者停留在被调用的方法名处都行,call hierarchy或者ctrl+alt+h,分别点击上边一栏左边的两个图标,可以看到调用及被调用的关系,可以点击小三角图标展开
QiTa常用:
1.ctrl+enter:生成(setter/getter/constructor...)
2.选中类名或者方法名,alt+enter,可以实现很多功能,比如生成测试方法等。
3.
IntelliJ IDEA使用技巧 (类比pycharm)的更多相关文章
- IntelliJ IDEA 目录技巧
IntelliJ IDEA的Web应用的目录结构 Ø 目录图: Ø 目录解释: 开发目录 目录名称 描述 Test 工程名称 lib Jar包的存放目录 src 源文件也就是文件(类,资源文件)存放的 ...
- IntelliJ IDEA 工具技巧
IntelliJ IDEA 工具技巧 以下都是自己积累的IntelliJ IDEA 使用技巧,比较零碎,观看不便之处还望海涵,如有错误之处还望指正 自己常用,不懂的可以加群询问:244930845 S ...
- IntelliJ IDEA 使用技巧一览表
IntelliJ IDEA使用技巧一览表 在使用 InelliJ IDEA 的过程中,通过查找资料以及一些自己的摸索,发现这个众多 Java 程序员喜欢的 IDE 里有许多值得一提的小窍门,如果能熟练 ...
- 【Tool】IntelliJ IDEA 使用技巧
IntelliJ IDEA 使用技巧 2019-11-06 20:51:43 by冲冲 1.快捷键 Ctrl+w //括出相关范围 Ctrl+shift+f //按照代码段在全局搜索 Ctrl+f ...
- IntelliJ IDEA 调试技巧
程序员的工作内容,有不少的时间是用在调试代码上.可以说不是在调试代码,就是即将调试代码. 掌握调试代码的一些技巧,在使用IDE提供的debugger时会快速定位问题的方式. 1.多线程调试 在多线程应 ...
- IntelliJ Idea各种技巧设置笔记和错误解决
版本控制 GitHub GitHub提示找不到路径: 解决方法:去官方下载gitHub,然后在以下路径找到Git.exe并设置 C:\Users\你的用户\AppData\Local\GitHub\P ...
- Intellij Idea使用技巧、快捷键
1.Idea设置字体大小:file -> setting -> editor -> colors&font -> save as并自定义 -> font -> ...
- python 技巧 之 pyCharm快速添加第三方库和插件
学习python有几个月,安装第三方库都是通过 pip install 或者 easy_install.每次都要打开命令行感觉太麻烦.还好Pycharm提供了安装第三方库和安装插件的功能. 首先打开P ...
- IntelliJ IDEA重构技巧收集
https://segmentfault.com/a/1190000002488608(重命名文件) http://www.jianshu.com/p/ab298b46bf50(快速生成方法) htt ...
随机推荐
- c# 读取xml文件 编写form
主要思想:xml保存控件的数据,c#读取出来并加以显示. 难点:1.控件有父容器和子控件的关系:2.控件事件的添加. 1.控件有父容器和子控件的关系: 可以用绝对坐标在xml文件中先读取子控件再读取父 ...
- 评价cnblogs的用户体验
用户体验: 1.是否提供良好的体验给用户(同时提供价值)? cnbolgs为广大的用户提供了一个学习工作交流的平台,方便大家对各种问题提出自己的看法,并且可以实现不同用户的即时评论,互动交流. ...
- JDK源码分析 – ArrayList
ArrayList类的申明 ArrayList是一个支持泛型的,底层通过数组实现的一个可以存任意类型的数据结构,源码中的定义如下: public class ArrayList<E> ex ...
- animate.css与wow.js制作网站动效
animate.css 官网:https://daneden.github.io/animate.css/ 包括:attention seekers:关注者 bouncing entrances:跳跃 ...
- PHP查询网站
1.w3school http://www.w3school.com.cn/php/ 2.PHP官网 http://php.net/manual/en/funcref.php 3.国内的类似w3csh ...
- Jekyll 使用 Rouge 主题
今日发现我的 Github Pages 中的代码并没有高亮,看了一下代码发现,原来的没有设置 css 样式的原因,我使用的代码高亮器是 rouge highlighter: rouge Rouge 是 ...
- 事件驱动与异步IO--待更新
论事件驱动与异步IO 通常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求: (2)每收到一个请求,创建一个新的线程,来处理该请求: (3)每收到 ...
- 使用thymeleaf实现div中加载html
目标:固定顶部或者左侧导航,点击导航动态更新中间content区域的页面,也就是在放一个div在页面上,把html加载到div里,以前类似的实现都是通过Iframe或者js实现,在使用springbo ...
- cf1073d Berland Fair
~~~题面~~~ 题解: 可以发现,每走完一圈付的钱和买的数量是有周期性的,即如果没有因为缺钱而买不起某家店的东西,那么这一圈的所以决策将会和上一圈相同,这个应该是很好理解的,想想就好了. 因为钱数固 ...
- POJ3977:Subset——题解(三分+折半搜索)
http://poj.org/problem?id=3977 题目大意:有一堆数,取出一些数,记他们和的绝对值为w,取的个数为n,求在w最小的情况下,n最小,并输出w,n. ————————————— ...