编辑器总览
基础
在创建和修改代码的时候,编辑器是是否有用的工具。所有的其他的编辑器也都支持书签,断点,语法高亮,代码提示,Zooming,代码折叠等。 当然这里还有很多诸如宏指令,高亮TODO,代码分析、事件、快捷智能导航的高级特性。可以使用setting中的editor配置编辑器环境。也可以通过ctrl+~的方式选择更改样式、主题、快捷键等。 这个编辑器是基本的,所有的语境菜单上的操作都是可用的。当然你也可以通过Window | Editor tabs上的节点来操作。
活动编辑器
当你打开一个文件编辑的时候,他打开在一个自己的标签中,你当前正在工作的编辑器,就是活动编辑器。你可以使用View | Active Editor节点下的命令来改变其行为。替代方式,你可以通过find action或者search everywhere命令。
编辑区域
- 编辑区 使用此区域来编辑和分类你的源代码。编辑器提供了很多的代码辅助工具。具体我们在后续章节讲解。
- 边栏区域 左边栏提供了关于你代码的辅助信息,并展示识别出的各种各样的图标(代码结构,断点,书签,指示器,变动人,代码折叠)。当然你可以从左侧边栏改变其行为。 可以使用setting|editor|apperance或者 Editor Gutter Popup Menu默认情况下,此事件没有绑定快捷键,你可以在快捷键中设置自己的。
-
智能提示弹窗 这是一个键辅助特性(支持方法名,函数,标签或者其他的)。
-
文档标签 可以依据此在多个文档间快速切换,也可以使用Alt+Right or Alt+Left切换。 当你按住ctrl的时候点击标签,会显示文件导航信息,你也可以用资源管理器打开所在位置。
同时也提供了如下集中语境菜单(后续会有)
- 关闭一个或多个标签
- 固定活动标签
- 分屏和取消分屏
- 标签组管理
- 标签间导航
- 添加到收藏夹
- 移动改变
- 运行和调试活动编辑器
- 执行本地历史和版本控制命令
- 执行自定义工具命令 默认情况下,标签展示在最上面,不过你可以设置。
-
侧边校验栏和标记栏 在编辑器右侧的栏,展示绿色,红色,黄色框,代表ok,error,warn。你可以通过点击它快速定位到对应的代码。
编辑器基础
在编辑器中选择文本
基础
基础的方式是通过鼠标进行文本的选择。在IDEA中提供了快捷键的支持。 你可以选择部分文字或者矩形代码片段,使用多选择或者粘性选择模式扩展和收缩选择。
选择编辑器中的所有文本
有如下两种方式:
- 主菜单中选择 Edit | Select All
- 使用ctrl+a 快捷键
使用定位键
选择当前容器位置的字符开始和结束的文本
- Ctrl+Shift+Left, Ctrl+Shift+Right. 选择当前容器位置的字符所在行开始和结束的文本
- 双击Ctrl+home/end
选择当前容器位置的头部和尾部为本
- Ctrl+Shift+Page Up, Ctrl+Shift+Page Down
选择代码的替代方案
选择一栏文本,可以做下面的操作:
- 保持alt键不松,然后鼠标左键选择文本
- 松掉左键 按鼠标中键
- 按键 shift(alt全程不松),拖动文本到指定位置。有时候这是非常有用的。
扩大选择
扩大选择编辑器中的文本,可以按如下两种方式
- 通过选择Edit | Extend Selection
- 通过ctrl+w快捷键 选择 通过上述方式可以快速选择光标位置的文本(可以是注释、方法、文本等),再次按扩大文本范围,直到文档全部被选择。
缩小选择
缩小选择是配合上边的扩大选择使用的,可以按如下两种方式
- 通过选择Edit | shrink Selection
- 通过ctrl+shift+w快捷键 选择
多选择
Intellij Idea支持多文本片段选择。所以你可以选择多个字符,行,或者矩形。
多个单词选择方式,按如下步骤:
- 按键shift+alt,双击鼠标左键选择相关单词
- 按键alt+J,或者选择文本后,再次alt+J,可以查找到所有匹配的文本(比如选择的文本是username,会匹配到其他的username(按键一次匹配一个)),在修改过变量名的时候挺有用的。
选择之后,你就可以编辑你选择的内容了。
选择多个文本段:
- 按Shift+Alt
- 使用鼠标左键选择想要操作的区域。
多个矩阵选择:
行列模式切换
主要有以下几种:
- 主菜单选择,Edit | Column Selection Mode
- 语境菜单选择 Column Selection Mode
- 按键Shift+Alt+Insert 主要是对多行选择内容的区别(列模式是矩阵)
粘性选择
切换到此模式,可以通过Ctrl+Shift+A的方式,键入sticky,选择下图的事件即可。
要诀和技巧
如果粘性开启,你可以通过执行复制,剪切或者esc来退出此模式。或者重新执行上述事件。 你也可以先选择多行,然后执行Shift+Alt+Insert来切换到列模式。
复制粘贴剪贴
Intellij Idea提供了一系列的剪切版操作项。你可以复制粘贴剪贴文本、文件路径、符号、代码行。
因为idea使用了系统粘贴板,所以你可以跨应用使用复制粘贴。当粘贴粘贴板时,Intellij idea会移除文本或者特殊字符的格式化。
粘贴(你要插入的)命令很好理解。如果你要粘贴一个符号,他会自动分析导入和关联等。Intellij Idea 提供了强制类型和何时的切入点。正常的粘贴只是纯文本,没有分析功能的。
idea允许堆积粘贴板,这就意味着你可以存储多个,默认是五个,可以 Editor | General中设置
复制选择的文本
主要有以下几种:
复制文件路径
- 主菜单选择 Edit | Copy Path,或者Ctrl+Shift+C
- 或者在项目工具窗中选择对应的文件,右键 Copy Path 即可
复制行和符号的关联
首先,找到你要操作的代码块。
剪贴文本片段
首先选择你想要剪贴的内容,然后如下操作:
从粘贴板粘贴最后一个内容
首先选择粘贴位置,然后如下操作:
这种方式,在java中会自动导入依赖(如果你配置了auto import)。
从粘贴板粘贴最后一个内容为纯文本
- 主菜单 Edit | Paste Simple.
- Ctrl+Shift+Alt+V
从粘贴板中选择特定版本
- 主菜单 Edit | Paste from History 或者快捷键 Ctrl+Shift+V
- 从弹窗的列表中选择你需要的版本(参照上图)。
跨idea复制粘贴
此处内容比较简单,这里大概描述下即可 主要是使用ctrl+c/v/x进行操作,即可在idea之间,系统间进行复制、粘贴、剪贴操作 不同的是,可以之间拖拽文件进行移动,ctrl+拖拽进行复制文件
注释和取消注释代码块
基础
你可以注释或取消注释当前行或者选择的代码。注释特性对所有文件类型都适合。
配置注释行为
一般情况下,idea的注释(比如//)是在行头的。如果你想改变的话,可以打开settings对话框,选择 Code Style | Java,点击 Code Generation标签。
清除之后,注释就在代码前边,而非行头
注释/取消注释行代码
可以有以下几种方式:
- 主菜单选择:Code | Comment with Line Comment.
- ctrl+/
注释/取消注释行代码块
可以有以下几种方式:
撤消和重做变化
基础
撤销命令丢弃当前文件的最后一次更改。重做命令则是丢弃最后一次撤销命令。 在必要的时候,你可以使用撤销和重做命令。idea关闭时,这些改变历史会丢失。
以下几种情况都会触发记录历史操作:
- 按键 enter
- 光标位置发生变化
- 使用导航快捷键
- 复制、粘贴
- 按键 tab
idea扩展撤销和重做机制已完成复杂的操作。比如:格式化和重构代码,创建和删除文件。
撤销和重做更改
- 撤销
- 主菜单选择 Edit | Undo.
- ctrl+z
- 重做
- 主菜单选择 Edit | Redo.
- Ctrl+Shift+Z
在编辑器中打开或者重新打开文件
编辑器中打开文件
- 有如下几种方式
- 在工具窗中双击你要打开的文件
- 在工具窗中选择你要打开的文件,按F4
- 在工具窗中选择你要打开的文件,右键Jump to Source
- 使用导航命令(class,文件,符号,比如shift+shifit)
-
如果文件类型已经在idea中注册,会优先静默使用idea打开。
如果文件类型注册在类目下,则会有相关联的程序打开(比如doc,pdf等)。
如果文件类型未知,idea会建议你去注册一个类型。可以通过 Register New File Type Association 窗就行配置。具体是在Settings/Preferences, File Types 中设置。
idea默认限制了文件的大小。默认是有bin目录中的idea.properties中的idea.max.intellisense.filesize控制,一般不建议直接修改此文件。如果想更改文件的最大大小,可以如下配置。
- Windows: 在 %USERPROFILE%.IntelliJIdeaXX or %USERPROFILE%.IdeaICXX目录下创建idea.properties文件,设置上述属性即可
- *NIX: 在 ~/.IntelliJIdeaXX or ~/.IdeaICXX目录下创建idea.properties文件,设置上述属性即可
- macOS: 在 ~/Library/Preferences/IntelliJIdeaXX or ~/Library/Preferences/IdeaICXX目录下创建idea.properties文件,设置上述属性即可
打开外部文件
有以下几种方式:
- 主菜单选择 File | Open ,在对话框中选择你想要打开的外部文件。
- 直接从外部系统中拖拽文件到编辑器中即可。
重新打开文件
- 从主菜单选择 View | Recent Files或者ctrl+E。从类似下面的弹出式窗体中选择你要打开的文件即可
- 如果你想打开最近更改过的文件,可以从主菜单选择View | Recently Changed Files 或者按键Ctrl+Shift+E。 从弹出的菜单中选择你想打开的文件即可。
在单独的窗体中打开文件
有以下几种方式:
- 拖拽已经在编辑器中打开的标签到ide外部即可
- 在工具窗(project)中,选中你要打开的文件,shift+双击鼠标左键即可。
在编辑器中关闭文件
idea提供了以下几种关闭文件的方式
- 从主菜单选择 Window | Editor Tabs,然后选择合适的命令。
- 右键编辑窗 可以得到上述相同的命令菜单
- 鼠标移动到你想要操作的标签上,按住shift,然后左键即可关闭
- 鼠标移动到你想要操作的标签上 点击x号即可
- ctrl+f4
镜头模式
当我们的光标移动到侧边栏的警告、错误、信息上时,会出现一个小窗体。这个窗体就是镜头模式。 ,窗体内展示错误、警告的代码片段。
多光标
基础
idea支持多插入符号操作。有些专业的事件,比如键导航,文本插入和删除等待。当然活动模块和自动完成也是支持的。
大多数情况下,我们只关注那些近期添加的字符。高亮只适用于插入符号的字符所在行
同时,此功能依赖下面两项:
- column selection mode 是否开启。
- placement of caret after the end of line(settings|editor|general) 是否开启。
添加 退出 克隆
添加
- 按键Shift+Alt并左键
- 两次Ctrl (Windows or UNIX)/Alt(macOS) ,并且不释放按键,可以上下操作
新的符号可以添加在特殊位置(比如行末后的位置),可以在Allow placement of caret after end of line配置(个人觉得没啥卵用)
退出
- 按键esc即可退出此模式(所有)
- 按键alt+shift,然后左键再次选择你选过的位置即可退出(单个)
克隆
默认情况下是没有绑定快捷键,不过你可以去快捷键里面配置。
复制和粘贴
使用ctrl+c和ctrl+v即可将选择的多文本复制和粘贴。
添加到收藏夹
你可以讲一些需要的条目分组到收藏夹中,以便可以快速的通过收藏夹工具窗定位。
你可以通过下面的方式进行收藏:
- 打开你需要的文件或者在project工具窗中选择1个或者多个条目
-
如果你已经有收藏列表 选择对应的即可,如果没有则可以 Add to New Favorites List,然后设置列表名。
保存和还原更改
使用idea的话你不用担心文件的保存问题,idea会自动帮你保存的。
你不需要关心改变,idea会自动帮你在本地保存版本,你可以还原到上一个版本。
什么时候idea保存变化?
- 编译项目,module,class
- 启动运行或者调试配置
- 执行版本控制操作 比如pull commit或者push等等
- 关闭文件
- 关闭项目
- 退出ide
调整自动保存行为
在(File | Settings | Appearance and Behavior | System Settings)可以调整自动保存行为。
使用save all 命令
- File | Save All
- Ctrl+S
标示没有保存的文件
如果你想标示还没有自动保存的文件,可以在File | Settings | Editor | General | Editor Tabs中启用 Mark modified tabs with asterisk选项。效果如下图
文件另存为一个名字
idea中没有file|save as命令。不过你可以通过Refactor | Copy 或者 F5来实现。
还原变化
你可以通过Edit | Undo 或者 Ctrl+Z。当然你也可以通过 Local History来操作。
Zoom
启用编辑器字体改变功能
- 打开Settings/Preferences,展开editor节点
- 确保Change font size (Zoom) with Ctrl+MouseWheel开启。
使用鼠标改变字体
- 进入编辑器 2.按住ctrl 滚动鼠标滚轮即可
使用键盘改变字体
1.按ctrl+shift+a 2.在对话框中输入Increase font size 或者 Decrease font size 即可放大或者缩小字体。
重置为默认
1.按ctrl+shift+a 2.在对话框中输入Reset font size,回车即可重置为默认字体大小。
编辑器高级
格式化源码
概述
idea使你格式化代码为你想要的样式。idea将布局空格、缩进、单词等。选择文本、整个文件、整个项目都适用格式化。
格式化代码
如果你想格式化一个文件夹,按以下几步:
- 在项目工具窗体中选择一个你想要应用格式化的module或者文件夹。
- 从主菜单选择Code | Reformat Code或者按键 Ctrl+Alt+L。或者右键 Reformat Code.
- 在 Reformat Code对话框中配置选项后,然后run。
格式化当前文件代码
1.在打开的文件中按键Ctrl+Shift+Alt+L。注意:如果你选择主菜单的Code | Reformat Code或者Ctrl+Alt+L,idea会自动帮你格式化(不用打开格式化对话框)
- 在打开的对话框中选择选项,点击run
当格式化的时候跳过某个区域
如果你想保留某一部分的代码格式,按下面几步:
- 在区域开始出,使用ctrl+/ 跟随@formatter:off
- 在区域结束处,使用ctrl+/ 跟随@formatter:on
- 执行格式化命令。
当然你也可以创建一个live template来环绕代码,实现类似上面的功能。
格式化示例
正常代码 | 格式化后的代码 |
---|---|
缩进
文本片段缩进
- 主菜单选择 Edit | Indent Selection / Edit | Unindent Selection
- 按键Tab / Shift+Tab
固定缩进
- 使用一个错误的缩进即可
- 按键Ctrl+Alt+I
tab和空格间切换
主菜单选择 Edit | Convert Indents,然后选择To Spaces 或者To Tabs
代码折叠
概述
你可以折叠代码片段成为一行。这样,你可以隐藏那些不重要或者注释细节。当需要的时候,你可以打开展开它。 下面是一个对比显示:
折叠含义
你可以通过如下方式展开和折叠代码片段:
- 你可以点击这几个图标来操作,,点击+之后会变成-。如果你按住alt来操作,会递归的展开和折叠代码片段。
- 选择Code | Folding后,在子单中你能看到关于折叠的选项以及快捷键 -对于折叠的代码片段,点击即可展开。
预定义折叠和自定义区域
- 代码块 使用Ctrl+Shift+句号(或者Code | Folding | Fold Code Block) 可以折叠{}形式的代码块。 也可以 使用Fold Selection / Remove Region或者ctrl+句号
- 预定义 默认情况下,像set方法等都会折叠,如果你想配置的话可以在settings选项中的Editor | General | Code Folding配置。
- 任何被选中的代码片段都可以使用Fold Selection/ Remove Region 或ctrl+句号进行展开。
折叠菜单命令
可以通过Code | Folding调出折叠菜单命令
命令 | 快捷键 | 描述 |
---|---|---|
展开 | ctrl+ + | 展开当前代码块 |
折叠 | ctrl+ - | 折叠当前代码块 |
递归展开 | ctrl+alt+ + | 递归展开当前代码块 |
递归折叠 | ctrl+alt+ - | 递归折叠当前代码块 |
展开全部 | ctrl+shift+ + | 展开全部当前代码块 |
折叠全部 | ctrl+shift+ - | 折叠全部当前代码块 |
展开等级 | ctrl+* 和1,2,3,4,5 | 展开等级(数字代表展开的层级,比如有两层折叠,如果按1则只展开最外一层,2则展开2层)当前代码块 |
折叠等级 | ctrl+shift+* 和1,2,3,4,5 | 折叠等级(数字代表折叠的层级,如果按1则只折叠最外一层,2则折叠2层)当前代码块 |
Expand doc comments | 无 | 折叠doc注释代码块 |
Collapse doc comments | 无 | 展开doc注释代码块 |
Fold Selection / Remove region | ctrl+ | 代码块 |
Fold Code Block | ctrl+ | 代码块 |
特殊的代码折叠选项
可以在 Editor | General | Code Folding中配置默认的折叠选项。默认情况下折叠图标(+/-)是显示的,一些方法默认是被折叠的。
预览折叠的代码片段
查看折叠开头位置。
使用折叠注释
NetBeans style
//<editor-fold desc="Description">
...
//</editor-fold>
Visual Studio style
//region Description
...
//endregion
代码块环绕
查看折叠区域
查看当前插入符号的所在位置
当你在编辑的时候,如果你插入字符的位置的方法已经不能在当前编辑器屏幕显示,你不用滚动到方法的位置来查看是什么方法,可以使用下面几种方式:
- 从主菜单选择View | Context Info
- 使用快捷键Alt+Q
切换读写状态
可以在状态栏的中看到文件的读写状态。 切换文件状态可按以下几步来操作:
- 打开文件或者在项目窗体选择文件
- 如下几种
- 选择菜单File | Make File Read-Only, 或者File | Make File Writable
- 点击状态栏的锁图标。
切换事件
切换大小写
- 选择要切换的代码片段
- 从主菜单选择Edit | Toggle Case, 或者按键 Ctrl+Shift+U.
高亮括号
如果括号没有匹配到,则是显示如下图:
拼写检查
文档意义不大,不翻译了
Scratch
3 .编写代码即可
查看scratch
在工具栏中选择
或者Alt+F1来选择
添加删除移动代码元素
添加
按键Shift+Enter 即可在下一行添加新行,如下实例:
- 开始前
- 按键shift+enter
如果想在前一行添加新行,则Ctrl+Alt+Enter
复制一行或者代码段
选择要复制的行或代码段,然后ctrl+d
移除一行
使用ctrl+y
移动一行
选择要移动的行或者代码块 使用下面的几种方式:
- 主菜单选择Code | Move Line Up 或者 Code | Move Line Down.
- 按键 Shift+Alt+Up 或者 Shift+Alt+Down.
移动后:
左右移动
选择要移动的行或者代码块 使用下面的几种方式:
- 主菜单选择Code | Move Element Left 或者 Code | Move Element Right
- 按键 Ctrl+Shift+Alt+Left 或者 Ctrl+Shift+Alt+Right
- java:
- xml:
- html
连接行和文字
连接行
- 选择你要连接的行
- 按键Ctrl+Shift+J,直到达到你要的效果
连接文字
- 选择你要连接的文字
- 按键Ctrl+Shift+J,直到达到你要的效果
字符串分割
如果你想要分割字符串为两行,首先选择要分割的位置
按键enter即可
根据换行符分割
如果你想以下的代码
String s = "Hello,\nWorld!";
变成
String s = "Hello,\n" +
"World!";
可以做如下几步操作:
在表格中编辑csv或者类似的文件
不常用 暂不翻译
编辑器中拖拽复制
首先选择要复制的代码片段,然后拖拽,既可以移动代码片段;如果按住ctrl则是复制选择的代码片段
使用宏指令
宏可以用来编译项目等一连串的操作的录制,完成后配置快捷键,会非常高效。
录制宏指令
停止保存,键入你的名字,此时会出现在edit|macros列表,你可以play它。 ![](./image/macros03.png
编辑宏
edit|macros 选择 edit macros,可以修改名字和删除宏
设置宏快捷键
如下图,在keymap中展开macros,选择你录制的宏,右键第一个选项,设置快捷键即可。
管理编辑器标签
在下图中可以配置编辑器标签是否显示,显示位置,显示数量,关闭策略等。
标签之间切换
- 使用Alt+Right 或者 Alt+Left
- Ctrl+Tab
返回历史编辑处(历史操作)
显示所有tab
主菜单选择Window | Editor Tabs | Show Hidden Tabs或者点
固定和取消固定
固定的标签样式:
固定和取消固定都可以右键标签,然后选择pin/unpin命令即可
分割和取消分割
效果如下:
复制一份同时编辑 右键tab,在语境菜单中选择Split Vertically or Split Horizontally即可
独一份编辑 右键tab,在语境菜单中选择 Move Right or Move Down 即可
如果你想切换上下或者左右布局,右键选择Change Splitter Orientation即可
如果你想还原布局,可以右键Unsplit或者Unsplit All。会变成原始布局。
拆分标签(独立视图)
有两种方式:
还原视图:
拖拽视图到主视图编辑器即可。
使用组来编辑多个文件
不常用 不处理
改变编辑器标签头部的位置
在管理编辑器标签中配置编辑器标签显示的位置,从placement旁边的下拉中选择即可。当然你可以右键编辑器tab来设置。
排序编辑器标签
可以右键选择sort方式进行排序
使用TODO
创建TODO组
- 在编辑器中打开你需要的文件,定位到你想要添加待办事项地方
- 创建一个注释,例如你可以使用ctrl+/
- 在注释开始之处用TODO开始(//TODO 待办事项内容),编辑器会高亮此部分。
- 在TODO工具中查看
定义TODO规则和过滤器
源码中的TODO组是以确定的规则来定义的。 无论何时,规则变化,或者新增了,IntellijIDEA会重新扫描整个项目,构建TODO组索引。结果会展示在TODO工具窗中。 默认情况,idea提供两种规则:
- \btodo\b.*
- \bfixme\b.*
正常的表达式如下:todo.* 也许你只想查看确定规则的TODO组,隐藏其他的。这种情况下,你可以使用过滤器。 主要有以下两种方式:
查看TODO视图
想要查看项目中的TODO,按下面的步骤:
- 打开TODO工具窗体 点击,选择TODO即可 工具窗会展示几个TODO标签。
- 项目相关
- 当前文件(正在编辑的)
- 已经定义的范围,在超大项目的时候相当有用。
- 如果版本控制可用,会有更改列表。
- 选择你想要的视图标签,并探索你遇到的TODO组。例如,当你选择ScopeBased视图,你可以从下来列表中选择Scope。
- 通过选择范围或应用过滤器,可以限定搜索的TODO结果。
译者
ricky,交流群:244930845