IDE-Intellij IDEA

之前同事一直给我推荐IDEA,说跟eclipse相比就是石器时代的工具,我一直任何一个工具熟练起来都很牛逼,所以一直坚持使用eclipse,不过看了下IDEA的功能,有几点比较吸引我,1可以全键盘操作,2双栏显示,3多窗口显示,4插件集成要比eclipse方便 ,5界面很漂亮。所以还是决定去尝试下IDEA,如果真的有那么好用,可以提升工作效率何乐而不为呢?

下载安装

IDEA有2个版本,社区版本跟商业版本,社区版本是免费的商业版本是收费的(商业版本要比社区版本提供更多的功能)。 
官网地址下载】【百度云盘下载2016商业版】(我还是想支持正版(购买license链接)的,只是499刀/年对我来说还是太贵了,所以只能默默的在心里支持下,破解方式可以参考http://idea.lanyus.com/,离线破解最好在本地起一个license server,网上有很多覆盖jar文件的,我试了几个都没有成功。离线破解教程链接)安装虽然没有eclipse那样绿色压缩直接解压就ok,但是直接下一步下一步没有遇到任何阻碍。

第一印象

启动页面还是看到比较熟悉的进度条,只是进度条走完后,没法直接进入工作页面,而是需要先选择一个项目。这里也是IDEA与eclipse的一个重要区别,eclipse里面有workspace的概念,一个workspace里面可以有多个project,project之间都是相对独立的,而IDEA中没有workspace概念,最顶级的就是project,project下面可以建多个module,虽说层级关系都是两层,但却不能完全相等,IDEA中的module要比eclipse更加的灵活。埋个坑后面说。总得来说对IDEA的第一印象还是非常不错的。 

HELLO WORLD

对于程序员来说所有的说教都不如屏幕出现一个helloword来的靠谱。首先开始之前要清空一下脑子,忘了以前我们用eclipse的那些习惯,完全从0开始。IDEA提供给了我们几乎所有新建项目的可能,create new project。 
 
 
进入下一步create project form template相当于选择模板工程,可以跳过,输入project nameproject location项目的名称跟项目存储路径。点击finish,好了一个新项目新建完成。src右键new package一切还是那么熟悉,新建一个熟悉的helloword类。ctrl+F9编译shift+F10编译运行。 
 
如果你发现我跟你的界面不太一样,是因为我为了适应eclipse跟IDEA的差别修改了下配置,后面会说如何配置eclipse。这里填一下刚才说的project跟workspace的坑,刚才的新建project过程其实跟eclipse里的新建project过程几乎是相同的,并没有太多的差别,但是网上很多说eclipse里的workspace相当于IDEA中的project。我觉得并不应该这样去理解,首先我们应该清楚不管是workspace还是project都是IDE提供给我们的为了方便管理项目的,在Java中其实并没有这样的概念的,对于java来说只需要执行类似这样的命令就可以,并不关心你是如何管理项目的,

D:\Work\Java\jdk1.6.0_34\bin\java -Didea.launcher.port=7534 "-Didea.launcher.bin.path=D:\Work\JetBrains\IntelliJ IDEA 2016.1.1\bin" -Dfile.encoding=UTF-8 -classpath "D:\Work\Java\jdk1.6.0_34\jre\lib\charsets.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\deploy.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\ext\dnsns.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\ext\localedata.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\ext\sunjce_provider.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\ext\sunmscapi.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\ext\sunpkcs11.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\javaws.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\jce.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\jsse.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\management-agent.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\plugin.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\resources.jar;D:\Work\Java\jdk1.6.0_34\jre\lib\rt.jar;H:\IDEAWORK\Test01\out\production\Test01;D:\Work\JetBrains\IntelliJ IDEA 2016.1.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain com.baidu.test01.Test01

所以eclipse提供了一种workspace的管理方式,workspace里面的project是相对独立的,比如说project编译后都会生成在各自的bin目录下。eclipse更倾向于多个项目管理,而IDEA更倾向于单个project的管理,而project中的module跟project之间的关系是一种归属关系,但是eclipse中workspace跟project并没有这个概念,但IDEA中的module其实是属于project的,IDEA的module更像maven中的module的概念,多个module只是这个project不同的分层而已,但是恰巧IDEA的module也可以做的类似比较独立,module之间也可以没有任何依赖,这样感觉好像跟eclipse中的project就相似了,但这并不是IDEA的设计初衷,还有一点可以体现project跟module的关系的紧密就是IDEA中的输出路径,一个project下的所有module输出路径都是project/out/production目录下,所以并不建议你把多个项目放到一个project作为不同的module来管理,实在不行你可以双开IDEA嘛。

这是我的工具!

IDEA虽然做的很漂亮,但是对于我这种用惯了eclipse的人来说,还是太超前了吧。所以还是让它适应一下我得习惯吧。

打开配置管理

首先记住这个快捷键ctrl+alt+s,按一下就知道了,settings出来了,跟以前eclipse里的window->Preferences差不多,配置项不少,但是大部分我们都用不到。

修改主题风格

IDEA给我们提供了三种主题,Darcla的黑色风格逼格太高,我还是改回默认的intellij吧,ctrl+alt+s -appearance&behacior-appearance-theme

代码提示键

alt+/在eclipse里面这个键可以说是神键,但是在IDEA里面却不起作用,IDEA里面的代码提示快捷键是ctrl+空格(很熟悉,与切换输入法快捷键冲突了改成我们熟悉的alt+/吧) 
ctrl+alt+s->keymap->mainmenu->code->completion将原来的ctrl+空格删了同时也把alt+/删了,然后再添加alt+/保存ok。

Code字体不好看字号太小?

看惯了eclipse的courier字体,在看IDEA代码的字体太不舒服了,而且字号也太小,ctrl+alt+s-edit-color&fonts-font(这里需要新建一个,字体courier size14)look是不是好很多了。我们顺便也把下面控制台console font字体改了。

显示行号

行号这个是绝对不能少的,不过idea没有eclipse那么方便单击右键show line number,IDEA也需要ctrl+alt+s-editor-general-appearance-show line numbers

双栏显示代码

这个真的是eclipse没法比的,对写代码真的是太实用了。操作很简单,体验了一下不过没有sublime text的好用。但是已经很好了,而且窗口还可以脱出去,这个在eclipse里面是没法想的。 

先让IDEA走起来

Maven 
IDEA中已经集成了maven插件,不需要再次下载,几乎可以不修改配置就可以使用,不过我们还是习惯性的去修改下maven的版本,保证我们在使用过程中不会出现因为版本导致的问题。 
 
版本控制 
不管你是使用svn、Git还是github在IDEA中都能很快的上手,IDEA中内置了多种版本控制插件。 
 
首先下载sliksvn(可以不下载svn工具,直接使用IDEA的svn工具,我第一次在使用中遇到svn commit无法提交的问题,所以还是建议下载svn 工具)安装完成后,配置user command line clientsvn.exe的路径例如我的是D:\Work\SlikSVN\bin\svn.exe 
git需要先安装git的客户端 
windows的git版本下载地址点我下载(msysgit链接)
安装完成后,修改IDEAgit配置: 
 
则可以跟eclipse一样方便使用版本控制。 
(version control 有一个配置,建议勾选上:Show directories with changed descendants 跟eclipse的的修改效果是一样的,文件如果被修改了,那么这个文件的长层所有的目录都变成被修改的标识) 
编译web项目 
其实IDEA所有使用第三方运行项目的操作基本都差不多,比如我们用maven编译项目,之前在eclipse里需要右键 run as配置下maven的参数就可以运行了(clean install -Dmaven.test.skip=true(跳过测试)),在IDEA中也差不多。 
 
然后跟eclipse的配置是几乎完全一样的,配置启动名称以前eclipse里还不可以重名,这里完全没有限制,然后选择运行的项目,执行的命令。 
 
运行时只需要选择运行配置 shift+F10 
运行web项目 
tomcat 
(之前遇到了一个奇怪的问题,tomcat 配置里面没有on frame deactivation,后来发现是因为项目配置的问题,pom文件里面缺少一个war导致的,项目的没有artifacts,更新pom文件ok) 
首先需要下载安装tomcat。下载tomcat,安装tomcat后配置启动配置,1增加一个tomcat启动配置2配置tomcat3选择tomcat安全目录4配置启动名称5勾掉启动自动启动浏览器 
 
6切换到deployment中,将我们要部署的项目添加到tomcat中。 
(debug如果需要热部署只需要勾选on update action->hot swap classes,on frame deactivation ->hot swap classes 
deployment部署需要选择 exploded包,exploded包才能热部署资源文件,还要勾选build on make,修改课好几次还是不能热部署web-inf下的文件,后来勾选了Deploy applications configured in Tomcat instance就可以了) 
 
启动tomcat ok部署完成。

让IDEA帮你上天

IDEA有超级多的快捷键可以方便我们的使用,这是一张快捷键列表有兴趣可以打印出来,多尝试下使用快捷键操作。

IDEA快捷键

快捷键 说明
Ctrl+Shift + Enter 语句完成
“!” 否定完成,输入表达式时按 “!”键
Ctrl+E 最近的文件
Ctrl+Shift+E 最近更改的文件
Shift+Click 可以关闭文件
Ctrl+[OR] 可以跑到大括号的开头与结尾
Ctrl+F12 可以显示当前文件的结构
Ctrl+F7 可以查询当前元素在当前文件中的引用,然后按F3可以选择
Ctrl+N 可以快速打开类
Ctrl+Shift+N 可以快速打开文件
Alt+Q 可以看到当前方法的声明
Ctrl+P 可以显示参数信息
Ctrl+Shift+Insert 可以选择剪贴板内容并插入
Alt+Insert 可以生成构造器/Getter/Setter等
Ctrl+Alt+V 可以引入变量。例如:newString();自动导入变量定义
Ctrl+Alt+T 可以把代码包在一个块内,例如:try/catch
Ctrl+Enter 导入包,自动修正
Ctrl+Alt+L 格式化代码
Ctrl+Alt+I 将选中的代码进行自动缩进编排,这个功能在编辑JSP文件时也可以工作
Ctrl+Alt+O 优化导入的类和包
Ctrl+R 替换文本
Ctrl+F 查找文本
Ctrl+Shift+Space 自动补全代码
Ctrl+空格 代码提示(与系统输入法快捷键冲突)
Ctrl+Shift+Alt+N 查找类中的方法或变量
Alt+Shift+C 最近的更改
Alt+Shift+Up/Down 上/下移一行
Shift+F6 重构–重命名
Ctrl+X 删除行
Ctrl+D 复制行
Ctrl+/或Ctrl+Shift+/ 注释(//或者/**/)
Ctrl+J 自动代码(例如:serr)
Ctrl+Alt+J 用动态模板环绕
Ctrl+H 显示类结构图(类的继承层次)
Ctrl+Q 显示注释文档
Alt+F1 查找代码所在位置
Alt+1 快速打开或隐藏工程面板
Ctrl+Alt+left/right 返回至上次浏览的位置
Alt+left/right 切换代码视图
Alt+Up/Down 在方法间快速移动定位
Ctrl+Shift+Up/Down 向上/下移动语句
F2或Shift+F2 高亮错误或警告快速定位
Tab 代码标签输入完成后,按Tab,生成代码
Ctrl+Shift+F7 高亮显示所有该文本,按Esc高亮消失
Alt+F3 逐个往下查找相同文本,并高亮显示
Ctrl+Up/Down 光标中转到第一行或最后一行下
Ctrl+B/Ctrl+Click 快速打开光标处的类或方法(跳转到定义处)
Ctrl+Alt+B 跳转到方法实现处
Ctrl+Shift+Backspace 跳转到上次编辑的地方
Ctrl+O 重写方法
Ctrl+Alt+Space 类名自动完成
Ctrl+Alt+Up/Down 快速跳转搜索结果
Ctrl+Shift+J 整合两行
Alt+F8 计算变量值
Ctrl+Shift+V 可以将最近使用的剪贴板内容选择插入到文本
Ctrl+Alt+Shift+V 简单粘贴
Shift+Esc 不仅可以把焦点移到编辑器上,而且还可以隐藏当前(或最后活动的)工具窗口
F12 把焦点从编辑器移到最近使用的工具窗口
Shift+F1 要打开编辑器光标字符处使用的类或者方法Java文档的浏览器
Ctrl+W 可以选择单词继而语句继而行继而函数
Ctrl+Shift+W 取消选择光标所在词
Alt+F7 查找整个工程中使用地某一个类、方法或者变量的位置
Ctrl+I 实现方法
Ctrl+Shift+U 大小写转化
Ctrl+Y 删除当前行
Shift+Enter 向下插入新行
psvm/sout main/System.out.println();
Ctrl+J 查看更多
Ctrl+Shift+F 全局查找
Ctrl+F 查找
Shift+F3 向上查找/F3向下查找
Ctrl+Shift+S 高级搜索
Ctrl+U 转到父类
Ctrl+Alt+S 打开设置对话框
Alt+Shift+Inert 开启/关闭列选择模式
Ctrl+Alt+Shift+S 打开当前项目/模块属性
Ctrl+G 定位行
Alt+Home 跳转到导航栏
Ctrl+Enter 上插一行
Ctrl+Backspace 按单词删除
Ctrl+”+/-” 当前方法展开、折叠
Ctrl+Shift+”+/-” 全部展开、折叠
【调试部分、编译】  
Ctrl+F2 停止
Alt+Shift+F9 选择Debug
Alt+Shift+F10 选择Run
Ctrl+Shift+F9 编译
Ctrl+Shift+F10 运行
Ctrl+Shift+F8 查看断点
F8 步过
F7 步入
Shift+F7 智能步入
Shift+F8 步出
Alt+Shift+F8 强制步过
Alt+Shift+F7 强制步入
Alt+F9 运行至光标处
Ctrl+Alt+F9 强制运行至光标处
F9 恢复程序
Alt+F10 定位到断点
Ctrl+F8 切换行断点
Ctrl+F9 生成项目
Alt+1 项目
Alt+2 收藏
Alt+6 TODO
Alt+7 结构
Ctrl+Shift+C 复制路径
Ctrl+Alt+Shift+C 复制引用,必须选择类名
Ctrl+Alt+Y 同步
Ctrl+~ 快速切换方案(界面外观、代码风格、快捷键映射等菜单)
Shift+F12 还原默认布局
Ctrl+Shift+F12 隐藏/恢复所有窗口
Ctrl+F4 关闭
Ctrl+Shift+F4 关闭活动选项卡
Ctrl+Tab 转到下一个拆分器
Ctrl+Shift+Tab 转到上一个拆分器
【重构】  
Ctrl+Alt+Shift+T 弹出重构菜单
Shift+F6 重命名
F6 移动
F5 复制
Alt+Delete 安全删除
Ctrl+Alt+N 内联
【查找】  
Ctrl+F 查找
Ctrl+R 替换
F3 查找下一个
Shift+F3 查找上一个
Ctrl+Shift+F 在路径中查找
Ctrl+Shift+R 在路径中替换
Ctrl+Shift+S 搜索结构
Ctrl+Shift+M 替换结构
Alt+F7 查找用法
Ctrl+Alt+F7 显示用法
Ctrl+F7 在文件中查找用法
Ctrl+Shift+F7 在文件中高亮显示用法
 
 

IDEA教程的更多相关文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  3. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  4. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  5. Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境

    一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...

  6. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  7. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  8. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  9. Virtual Box配置CentOS7网络(图文教程)

    之前很多次安装CentOS7虚拟机,每次配置网络在网上找教程,今天总结一下,全图文配置,方便以后查看. Virtual Box可选的网络接入方式包括: NAT 网络地址转换模式(NAT,Network ...

  10. webpack之傻瓜式教程

    接触webpack也有挺长一段时间了,公司的项目也是一直用着webpack在打包处理,但前几天在教新人的情况下,遇到了一个问题,那就是:尽管网上的webpack教程满天飞,但是却很难找到一个能让新人快 ...

随机推荐

  1. Jmeter Dash Report(HTML Report)删除Hits Per Second graph的方法

    通过命令行 Non GUI的方式执行jmeter的jmx脚本可以生成HTML Report(Dash Report). 这个report默认自带了很多种图表报告,比如statistics,Over t ...

  2. CHROME浏览器清缓存

  3. CSRF 和 XSS 的区别

    XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任 XSS: 跨站脚本攻击 原名为Cross Site Scriptin,为避免和网页层级样式表概念混淆, 另名为XSS ...

  4. Vue项目碰到"‘webpack-dev-server’不是内部或外部命令,也不是可运行的程序或批处理文件"报错

    解决办法: 最后将项目里的“node_modules”文件夹删除,然后在cmd中cd到项目目录,依次运行命令:npm install和npm run build,最后运行npm run dev后项目成 ...

  5. Pyjwt ,python jwt ,jwt

    pip install Pyjwt 不错的jwt 文章: https://www.cnblogs.com/wayneiscoming/p/7513487.html Sampleimport jwt i ...

  6. mRNA文库构建

    mRNA文库构建 Posted: 三月 27, 2017  Under: Transcriptomics  By Kai  no Comments RNA-seq测序方法 在测mRNA过程中,首先要去 ...

  7. centos vi设置tab为4个空格 和括号自动补全

    1.打开vim配置文件 vi /etc/vimrc 2.设置tab为4个空格, 在文件末尾添加以下内容 if has( "autocmd" ) filetype plugin in ...

  8. jqgrid content-type datatype

    jQuery('#jq2').jqGrid( { url: 'http://localhost:8080/api/RskPriceFactorTest/senario/0/detail', editu ...

  9. MVC Razor视图下ViewData传递html内容被转义

    页面输出: html源码: <div style="width: 90%; height: auto;"> <p>付凯航 阿豆 ADOU</p> ...

  10. Kmeanns图片压缩

    from sklearn.datasets import load_sample_image#先导入数据包 china = load_sample_image("china.jpg" ...