idea 安装

设置idea虚拟机配置

当系统为64位,内存在16G以上,可以适当修改 配置内存

  1. -Xms128m # 最小内存数,初始内存数
  2. -Xmx750m # 最大内存数
  3. -XX:ReservedCodeCacheSize=240m # 保留代码缓存的大小
  4. -XX:+UseConcMarkSweepGC
  5. -XX:SoftRefLRUPolicyMSPerMB=50
  6. -ea
  7. -XX:CICompilerCount=2
  8. -Dsun.io.useCanonPrefixCache=false
  9. -Djdk.http.auth.tunneling.disabledSchemes=""
  10. -XX:+HeapDumpOnOutOfMemoryError
  11. -XX:-OmitStackTraceInFastThrow
  12. -Djdk.attach.allowAttachSelf=true
  13. -Dkotlinx.coroutines.debug=off
  14. -Djdk.module.illegalAccess.silent=true

基本设置

  1. 设置鼠标滚动

image.png

  1. 设置悬浮提示

image.png

  1. 自动导包

image.png

  1. 显示行号、显示方法分割符image.png
  2. 忽略大小写提示image.png
  3. 设置显示多个文件

image.png

  1. 设置注释颜色

image.png

  1. 设置文件头部信息

    /**
    *@ClassName: ${NAME}
    *@Description: ${description}
    *@Author liujiexin
    *@Date ${DATE} ${TIME}
    */
    

    image.png

  2. 设置编码

image.png

  1. 设置自动编译

image.png

Windows快捷键

自动代码
常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码 。
例如:要输入for(User user : users)只需输入user.for+Tab ;
再比如:要输入Date birthday = user.getBirthday()只需输入user.getBirthday().var+Tab即可。
代码标签输入完成后,按Tab,生成代码。
Ctrl+Alt+O 优化导入的类和包
Alt+Insert 生成代码(如get,set方法,构造函数等) 或者右键(Generate)
fori/sout/psvm + Tab 生成循环、System.out、main方法等boilerplate样板码

Ctrl+Alt+T 生成try catch 或者 Alt+enter
Ctrl + O 重写方法
Ctrl + I 实现方法
Ctr+shift+U 大小写转化
ALT+回车 导入包,自动修正
ALT+/ 代码提示
CTRL+J 自动代码

Ctrl+Shift+J 整合两行为一行

CTRL+空格 代码提示

CTRL+SHIFT+SPACE 自动补全代码

CTRL+ALT+L 格式化代码

CTRL+ALT+I 自动缩进

CTRL+ALT+O 优化导入的类和包

ALT+INSERT 生成代码(如GET,SET方法,构造函数等)

CTRL+E 最近更改的代码

CTRL+ALT+SPACE 类名或接口名提示

CTRL+P 方法参数提示

CTRL+Q 可以看到当前方法的声明

Shift+F6 重构-重命名 (包、类、方法、变量、甚至注释等)

Ctrl+Alt+V 提取变量

查询快捷键

Ctrl+Shift+Backspace 可以跳转到上次编辑的地

CTRL+ALT+ left/right 前后导航编辑过的地方

ALT+7 靠左窗口显示当前文件的结构

Ctrl+F12 浮动显示当前文件的结构

ALT+F7 找到你的函数或者变量或者类的所有引用到的地方

CTRL+ALT+F7 找到你的函数或者变量或者类的所有引用到的地方

Ctrl+Shift+Alt+N 查找类中的方法或变量

双击SHIFT 在项目的所有目录查找文件

Ctrl+N 查找类

Ctrl+Shift+N 查找文件

CTRL+G 定位行

CTRL+F 在当前窗口查找文本

CTRL+SHIFT+F 在指定窗口查找文本

CTRL+R 在 当前窗口替换文本

CTRL+SHIFT+R 在指定窗口替换文本

ALT+SHIFT+C 查找修改的文件

CTRL+E 最近打开的文件

F3 向下查找关键字出现位置

SHIFT+F3 向上一个关键字出现位置

F4 查找变量来源

CTRL+SHIFT+O 弹出显示查找内容

Ctrl+W 选中代码,连续按会有其他效果

F2 或Shift+F2 高亮错误或警告快速定位

Ctrl+Up/Down 光标跳转到第一行或最后一行下

Ctrl+B 快速打开光标处的类或方法

CTRL+ALT+B 找所有的子类

CTRL+SHIFT+B 找变量的类

Ctrl+Shift+上下键 上下移动代码

Ctrl+Alt+ left/right 返回至上次浏览的位置

Ctrl+X ,Ctrl+Y 删除行

Ctrl+D 复制行

Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者// )

Ctrl+H 显示类结构图

Ctrl+Q 显示注释文档

Alt+F1 查找代码所在位置

Alt+1 快速打开或隐藏工程面板

Alt+ left/right 切换代码视图

ALT+ ↑/↓ 在方法间快速移动定位

CTRL+ALT+ left/right 前后导航编辑过的地方

Ctrl+Shift+Backspace 可以跳转到上次编辑的地

Alt+6 查找TODO
其他快捷键

SHIFT+ENTER 另起一行

CTRL+Z 倒退(撤销)

CTRL+SHIFT+Z 向前(取消撤销)

CTRL+ALT+F12 资源管理器打开文件夹

ALT+F1 查找文件所在目录位置

SHIFT+ALT+INSERT 竖编辑模式

CTRL+F4 关闭当前窗口

Ctrl+Alt+V 可以引入变量。例如:new String(); 自动导入变量定义

Ctrl+~ 快速切换方案(界面外观、代码风格、快捷键映射等菜单)

svn快捷键

ctrl+k 提交代码到SVN

ctrl+t 更新代码

调试快捷键

其实常用的就是F8 F7 F9 最值得一提的就是Drop Frame 可以让运行过的代码从头再来。

alt+F8 debug 时选中查看值

Alt+Shift+F9 选择 Debug

Alt+Shift+F10 选择 Run

Ctrl+Shift+F9 编译

Ctrl+Shift+F8 查看断点

F7 步入

Shift+F7 智能步入

Alt+Shift+F7 强制步入

F8 步过

Shift+F8 步出

Alt+Shift+F8 强制步过

Alt+F9 运行至光标处

Ctrl+Alt+F9 强制运行至光标处

F9 恢复程序

Alt+F10 定位到断点

重构

Ctrl+Alt+Shift+T 弹出重构菜单

Shift+F6 重命名

F6 移动

F5 复制

Alt+Delete 安全删除

Ctrl+Alt+N 内联

Mac 快捷键

https://www.jianshu.com/p/9812be1f746d
建议将 Mac 系统中与 IntelliJ IDEA 冲突的快捷键取消或更改,不建议改 IntelliJ IDEA 的默认快捷键。
Mac键盘符号和修饰键说明
⌘ Command
⇧ Shift
⌥ Option
⌃ Control
↩︎ Return/Enter
⌫ Delete
⌦ 向前删除键(Fn+Delete)
↑ 上箭头
↓ 下箭头
← 左箭头
→ 右箭头
⇞ Page Up(Fn+↑)
⇟ Page Down(Fn+↓)
Home Fn + ←
End Fn + →
⇥ 右制表符(Tab键)
⇤ 左制表符(Shift+Tab)
⎋ Escape (Esc)
一、Editing(编辑)

自动补全
Control + Space 基本的代码补全(补全任何类、方法、变量)

Control + Shift + Space 智能代码补全(过滤器方法列表和变量的预期类型)
Command + Shift + Enter 自动结束代码,行末自动添加分号
Command + P 显示方法的参数信息
Control + J 快速查看文档
Shift + F1 查看外部文档(在某些代码上会触发打开浏览器显示相关文档)
Command + 鼠标放在代码上 显示代码简要信息z
Command + F1 在错误或警告处显示具体描述信息
Command + N, Control + Enter, Control + N 生成代码(getter、setter、构造函数、hashCode/equals,toString)
Control + O 覆盖方法(重写父类方法)
Control + I 实现方法(实现接口中的方法)
Command + Option + T 包围代码(使用if..else, try..catch, for, synchronized等包围选中的代码)
Command + / 注释/取消注释与行注释
Command + Option + / 注释/取消注释与块注释
Option + 方向键上 连续选中代码块
Option + 方向键下 减少当前选中的代码块
Control + Shift + Q 显示上下文信息
Option + Enter 显示意向动作和快速修复代码
Command + Option + L 格式化代码
Control + Option + O 优化import
Control + Option + I 自动缩进线
Tab / Shift + Tab 缩进代码 / 反缩进代码
Command + X 剪切当前行或选定的块到剪贴板
Command + C 复制当前行或选定的块到剪贴板
Command + V 从剪贴板粘贴
Command + Shift + V 从最近的缓冲区粘贴
Command + D 复制当前行或选定的块
Command + Delete 删除当前行或选定的块的行
Control + Shift + J 智能的将代码拼接成一行
Command + Enter 智能的拆分拼接的行
Shift + Enter 开始新的一行
Command + Shift + U 大小写切换
Command + Shift + ] / Command + Shift + [ 选择直到代码块结束/开始
Option + Fn + Delete 删除到单词的末尾
Option + Delete 删除到单词的开头
Command + 加号 / Command + 减号 展开 / 折叠代码块
Command + Shift + 加号 展开所以代码块
Command + Shift + 减号 折叠所有代码块
Command + W 关闭活动的编辑器选项卡
二、Search/Replace(查询/替换)
Double Shift 查询任何东西
Command + F 文件内查找
Command + G 查找模式下,向下查找
Command + Shift + G 查找模式下,向上查找
Command + R 文件内替换
Command + Shift + F 全局查找(根据路径)
Command + Shift + R 全局替换(根据路径)
Command + Shift + S 查询结构(Ultimate Edition 版专用,需要在Keymap中设置)
Command + Shift + M 替换结构(Ultimate Edition 版专用,需要在Keymap中设置)
三、Usage Search(使用查询)
Option + F7 / Command + F7 在文件中查找用法 / 在类中查找用法
Command + Shift + F7 在文件中突出显示的用法
Command + Option + F7 显示用法
四、Compile and Run(编译和运行)
Command + F9 编译Project
Command + Shift + F9 编译选择的文件、包或模块
Control + Option + R 弹出 Run 的可选择菜单
Control + Option + D 弹出 Debug 的可选择菜单
Control + R 运行
Control + D 调试
Control + Shift + R, Control + Shift + D 从编辑器运行上下文环境配置

显示类的所有方法
command + 7
查询所有类的子类
command +option+B
查看接口的实现类
control+h

五、Debugging(调试)
F8 进入下一步,如果当前行断点是一个方法,则不进入当前方法体内
F7 进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中
Shift + F7 智能步入,断点所在行上有多个方法调用,会弹出进入哪个方法
Shift + F8 跳出
Option + F9 运行到光标处,如果光标前有其他断点会进入到该断点
Option + F8 计算表达式(可以更改变量值使其生效)
Command + Option + R 恢复程序运行,如果该断点下面代码还有断点则停在下一个断点上
Command + F8 切换断点(若光标当前行有断点则取消断点,没有则加上断点)
Command + Shift + F8 查看断点信息
六、Navigation(导航)
Command + O 查找类文件
Command + Shift + O 查找所有类型文件、打开文件、打开目录,打开目录需要在输入的内容前面或后面加一个反斜杠/
Command + Option + O 前往指定的变量 / 方法
Control + 方向键左 / Control + 方向键右 左右切换打开的编辑tab页
F12 返回到前一个工具窗口
Esc 从工具窗口进入代码文件窗口
Shift + Esc 隐藏当前或最后一个活动的窗口,且光标进入代码文件窗口
Command + Shift + F4 关闭活动run/messages/find/… tab
Command + L 在当前文件跳转到某一行的指定处
Command + E 显示最近打开的文件记录列表
Option + 方向键左 / Option + 方向键右 光标跳转到当前单词 / 中文句的左 / 右侧开头位置
Command + Option + 方向键左 / Command + Option + 方向键右 退回 / 前进到上一个操作的地方
Command + Shift + Delete 跳转到最后一个编辑的地方
Option + F1 显示当前文件选择目标弹出层,弹出层中有很多目标可以进行选择(如在代码编辑窗口可以选择显示该文件的Finder)
Command + B / Command + 鼠标点击 进入光标所在的方法/变量的接口或是定义处
Command + Option + B 跳转到实现处,在某个调用的方法名上使用会跳到具体的实现处,可以跳过接口
Option + Space, Command + Y 快速打开光标所在方法、类的定义
Control + Shift + B 跳转到类型声明处
Command + U 前往当前光标所在方法的父类的方法 / 接口定义
Control + 方向键下 / Control + 方向键上 当前光标跳转到当前文件的前一个/后一个方法名位置
Command + ] / Command + [ 移动光标到当前所在代码的花括号开始/结束位置
Command + F12 弹出当前文件结构层,可以在弹出的层上直接输入进行筛选(可用于搜索类中的方法)
Control + H 显示当前类的层次结构
Command + Shift + H 显示方法层次结构
Control + Option + H 显示调用层次结构
F2 / Shift + F2 跳转到下一个/上一个突出错误或警告的位置
F4 / Command + 方向键下 编辑/查看代码源
Option + Home 显示到当前文件的导航条
F3选中文件/文件夹/代码行,添加/取消书签
Option + F3 选中文件/文件夹/代码行,使用助记符添加/取消书签
Control + 0…Control + 9 定位到对应数值的书签位置
Command + F3 显示所有书签
七、Refactoring(重构)
F5 复制文件到指定目录
F6 移动文件到指定目录
Command + Delete 在文件上为安全删除文件,弹出确认框
Shift + F6 重命名文件
Command + F6 更改签名
Command + Option + N 一致性
Command + Option + M 将选中的代码提取为方法
回填
Command + Option + V 提取变量
Command + Option + F 提取字段
Command + Option + C 提取常量
Command + Option + P 提取参数
八、VCS/Local History(版本控制/本地历史记录)
Command + K 提交代码到版本控制器
Command + T 从版本控制器更新代码
Option + Shift + C 查看最近的变更记录
Control + C 快速弹出版本控制器操作面板
九、Live Templates(动态代码模板)
Command + Option + J 弹出模板选择窗口,将选定的代码使用动态模板包住
Command + J 插入自定义动态代码模板
十、General(通用)
Command + 1…Command + 9 打开相应编号的工具窗口
Command + S 保存所有
Command + Option + Y 同步、刷新
Control + Command + F 切换全屏模式
Command + Shift + F12 切换最大化编辑器
Option + Shift + F 添加到收藏夹
Option + Shift + I 检查当前文件与当前的配置文件
Control + ` 快速切换当前的scheme(切换主题、代码样式等)
Command + , 打开IDEA系统设置
Command + ; 打开项目结构对话框
Shift + Command + A 查找动作(可设置相关选项)
Control + Shift + Tab 编辑窗口标签和工具窗口之间切换(如果在切换的过程加按上delete,则是关闭对应选中的窗口)
十一、Other(一些官方文档上没有体现的快捷键)
Command + Shift +8 竖编辑模式
移动与选取
光标移动
刚从 Windows 转过来的时候可能会发现,Mac 上没有 Home 和 End 键。其实,直接这样就好了:Cmd + ← 移至行首 (Home)Cmd + → 移至行尾 (End)
类似的,找不到 PageUp 和 PageDown,其实 Mac 系统也是有的:Fn + ↓ 向下翻页 (PageUp)Fn + ↑ 向上翻页 (PageDown)
再比如,对于一些很长的网页,想快速跳到顶部和底部,即使网页上没有按钮也没关系,可以这样:
Cmd + ↑ 回到顶部Cmd + ↓ 跳到底部
Mac 中也提供了按词跳光标的功能,英文中就是通过空格来判断:
Option + ← 向前跳一个词Option + → 向后跳一个词
删除
Windows 系统很贴 ♂ 心地为我们加上了两个删除键,一个是位于等号右边的退格(BackSpace),一个是位于方向键上面的向后删除(Delete)。Mac 虽然只有一个 delete,相当于 Windows的退格。但其实,我们只要通过组合键 fn + delete 就可以实现向后删除了
不仅如此,delete 和 fn + delete 绝大部分情况下可以搭配 Option 实现向前/向后删除一个词。一些情况下可以搭配 Cmd实现删除整行(在编辑器 Atom 中不行,因为 Atom 把这个组合键默认设置成了删除至行首/行尾,如有需要,改下配置就好了)
文本选取
以上所有提到的快捷键,都可以搭配 Shift 来实现选取
想向上选中半页的内容,只需要:Fn + Shift + ↑
想从当前位置选到末尾(多行),只需要:Cmd + Shift + ↓
想向后选中三个词,只需要( 3 表示按三次):Option + Shift + → 3
想选择整行,只需要:Cmd + ← 然后 Cmd + Shift + →当然也可以 Cmd + → 然后 Cmd + Shift + ←
编辑操作
基础操作
简单来说,大部分快捷键,就是把 Windows 的 Ctrl 替换成 Cmd 就行了,比如:Cmd + A 全选Cmd + C 复制Cmd + X 剪切Cmd + V 粘贴Cmd + Z 撤销Cmd + Shift + Z 恢复(恢复撤销操作)
移动文件
这部分可能不应该放在这篇博客中。只是个人觉得,与复制粘贴文本快捷键一起去记忆和使用,会比较好理解
上面提到的大部分快捷键对于在 Finder 中操作文件也是同理,我们可以全选、复制、粘贴甚至撤销和恢复,唯独不能通过 Cmd + X 来剪切
很多朋友抱怨说 Mac 只能复制粘贴文件之后再把原来的删除(顺便,把文件移动到 Trash 的快捷键是 Cmd + delete),移动文件的时候很不方便。其实,Mac 是有这个功能的。复制之后,在目标文件夹右键,菜单打开后,按住Option,本来的 “Paste Item” 就会变成 “Move Item Here”:

当然,也可以通过快捷键 Cmd + Option + V 来完成移动文件,会出现这样的提示,确定即可:

格式快捷键
在大部分文本编辑器,比如 Microsoft Word 或者 Apple 的 Pages,Numbers 中,我们可以用快捷键调格式:Cmd + B 文字加粗(Bold)Cmd + I 斜体文字(Italic)Cmd + U 文字下划线(Underline)
特殊快捷键
补充:有朋友提到,绝大部分文字编辑区都支持以下快捷键,如果你用 Emacs,可能对这些不会陌生
这些快捷键可以不去记忆,对于开发者来说可能会偶尔用,对于绝大部分用户,可能并不怎么需要
比如在 iTerm 中,我们会发现,用 Cmd + ← 是跳不回开头的,因为 iTerm 已经把这个键设置成了跳到上一个 Tab。同样,用 Option键跳单词也不行了
这种情况下,我们需要这些特殊快捷键来实现功能:Ctrl + A 跳到行首(Home)Ctrl + E 跳到行尾(End)Ctrl + F 向后移动一个字符Ctrl + B 向前移动一个字符Ctrl + P 光标上移一行Ctrl + N 光标下移一行
向前后跳词的方式比较特殊,我们需要:ESC + F 向后移动一个单词ESC + B 向前移动一个单词同时,iTerm 也为我们提供了特殊快捷键:Ctrl + ← 向前移动一个单词Ctrl + → 向后移动一个单词再比如,iTerm 中我还经常用这个:Ctrl + U 删除整行
这些快捷键,特别是在手打比较长的命令的时候,会很有用。这些快捷键也适用于其他的大部分环境。对于一般用户,没必要去特别记忆了,用上面提到的那些就好
一点点补充
关于 Cmd + F 文字查找,我打算在后面说 Chrome 操作的时候再提及。关于 Cmd + R 文字替换,暂时不打算多介绍。个人觉得这个功能对于普通用户来说可能意义不太大吧。而且现在很多编辑器和软件都有比较友好的替换窗口,用起来也不会太困难
写在最后
作者:EmmmXu链接:https://www.jianshu.com/p/163a69cdafcc来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

模板设置

常用模板

for、list、null、psf

  // prsf
    private static final short SHORT = 0;
    // psf
    public static final ArrayList ARRAY_LIST = new ArrayList();
    // psfi
    public static final int a = 0;
    // psfs
    public static final String STRING = "";

// 模板一 main or psvm
    public static void main(String[] args) {
        System.out.println();
        int a = 0;
        // xx.out
        System.out.println(a);


        int arr[] = {1,2,3,4};
        // fori  遍历循环
        for (int i = 0; i < arr.length; i++) {
            System.out.println(i);
        }
        // xx.for
        // iter
        for (int i : arr) {
            System.out.println(i);
        }
        // itar
        for (int i = 0; i < arr.length; i++) {
            int i1 = arr[i];
            System.out.println(i1);
        }

        ArrayList list = new ArrayList();
        // list.for

        for (Object o : list) {

        }
        // list.fori
        for (int i = 0; i < list.size(); i++) {

        }
        // list.forr
        for (int i = list.size() - 1; i >= 0; i--) {

        }

        // ifn
        if (list == null) {

        }
        // inn
        if (list != null) {

        }

        // xx.nn
        if (list != null) {

        }
        // xx.null
        if (list == null) {

        }
    }

版本控制

SVN

Git

设置模版

设置文件头注释

/**
*@ClassName: ${NAME}
*@Description: ${description}
*@Author liujiexin
*@Date ${DATE} ${TIME}
*/

image.png

设置方法注释

** 
 * @Description: $description$
 * @Param: $params$
 * @return: $returns$
 * @Author: liujiexin
 * @Date: $date$ $time$
 */


设置 params 参数
groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++){if(i==0){result = params[i] + ' '}else{result+='\\n'+'* @Param ' + '' + params[i] + ' ' + ((i < params.size() - 1) ? '' : '')}}; return result", methodParameters())

image.png

image.png

idea 插件