IntelliJ IDEA的界面布局主要分为菜单栏、工具栏、导航栏、工程与编辑区、状态栏和工具窗口栏等6个部分,如图2.1所示。
图2.1 IntelliJ IDEA界面布局
1.菜单栏
菜单栏包含了所有常用的操作。在IntelliJ IDEA中菜单栏包含13个菜单,分别为文件(File)、编辑(Edit)、视图(View)、导航(Navigate)、编码(Code)、分析(Analyze)、重构(Refactor)、构建(Build)、运行(Run)、工具(Tools)、版本(VCS)、窗体(Window)及帮助(Help)。
2.工具栏
工具栏提供了快速管理与操作的能力,使用工具栏可以启动项目或运行测试、打开系统配置与项目结构、进行Git操作等。
3.导航栏
导航栏展示了当前正在使用的文件的位置详情。面包屑式的路径导航为开发者提供了在不同层次位置间跳转的能力,开发者可以自由选择需要跳转的项目结构或目录层次,也可以将导航栏隐藏以节省屏幕空间。
4.工程与编辑区
工程与编辑区是整个界面布局中最重要的部分,开发者的所有编码操作都在编辑区内完成,并通过工程区进行项目的组织结构管理。可以这么理解,工程区是项目整体结构的体现,编辑区负责项目中文件的编码与实现。
5.状态栏
状态栏提供了十分有用的信息展示,能够辅助开发者更好地完成任务。例如,在使用版本控制管理系统(如Git)的情况下,状态栏成为虽然普通却十分重要的角色。
6.工具窗口栏
工具窗口栏也称为工具按钮组或侧边工具栏,主要提供辅助性的帮助,它们分布在工程与编辑区的两侧及下方。
在左侧边栏中主要包含了Project(工程)标签、Structure(结构)标签、Favorites(收藏)标签与Web(Web项目)标签。在右侧边栏中则包含了Maven标签、Ant标签、Database(数据库)标签、SciView标签与Bean Validation标签等。
在一个具有多模块结构的项目中,Bean Validation标签展示了非Web类型的模块,而Web标签则展示了那些可以用于独立发布的Web模块。
事实上,工程与编辑区中的工程区部分被纳入了Project(工程)标签的管理,但多数情况下工程区都会与编辑区一起使用,以方便程序的定位与管理。
主要介绍文件(File)菜单,因为它包含了项目的创建与管理、系统配置等重要功能,其主要包含以下菜单项。
1.新建
New菜单下包含许多子项,可以创建多种类型的项目、文件及草稿等。开发者需要基于此菜单创建标准的项目结构并不断地扩展与迭代程序。关于项目的创建会在后续内容中讲解。
2.打开
Open菜单用于打开已经存在的项目工程或文件。在打开工程时IntelliJ IDEA会自动识别项目类型并进行导入,如基于Eclipse创建的工程、基于Maven管理的工程等。
3.打开最近
Open Recent菜单用于快速打开最近访问过的项目工程,这些工程按照用户的访问时间由近及远自上向下排序。在列表的底部提供了Manage Projects菜单用于对已经存在的项目进行管理,如删除废弃的项目、对项目进行分组管理等。
在打开项目时需要确保工程目录在本地磁盘中是存在的。对于不再使用的项目,可以从欢迎界面左侧的项目列表中清除并手工删除本地磁盘中的项目目录。
4.关闭工程
Close Project菜单用于关闭当前窗口打开的项目。如果在使用过程中需要关闭当前打开的项目,如计算机内存不足,则可以使用Close Project菜单对工程进行关闭,也可以直接单击窗口右侧的关闭按钮。当所有打开的项目都关闭后,IntelliJ IDEA会返回欢迎界面。
在使用IntelliJ IDEA的过程中,还可以指定每个项目工程的打开方式。既可以为每个项目单独打开一个工程窗口,也可以让所有项目切换使用一个工程窗口,从而节省内存空间,保持计算机的运行速度。
在仅有一个工程窗口时,后打开的项目工程将占用现有的窗口并将原工程关闭。
5.配置
Settings菜单用于管理与系统相关的配置,如编辑器配置、快捷键配置、插件配置、版本管理工具配置等众多功能。
6.工程结构
Project Structure菜单用于对当前项目的工程结构进行管理,用户可以对模块结构、SDK版本、输入输出目录、项目依赖等进行配置。
Project Structure是一个项目的架构体现,所以对其准确理解十分重要。这些功能我们将细化到后续内容中进行讲解。
7.文件属性
编辑区中最多只有一个编辑器处于激活状态,通过File Properties菜单可以对文件进行属性管理,如配置文件编码、设置文件只读等。
8.保存
Save All菜单用于执行保存操作,此操作需要进行重点说明。
在IntelliJ IDEA中文件的变更是自动保存的,因此在操作疏忽或者意外断电的时候项目中的变更并不会丢失。那么IntelliJ IDEA在什么情况下会触发自动保存呢?
在IntelliJ IDEA中,自动保存由以下方式触发:
· 编译项目、模块或类。
· 启动运行/调试配置。
· 执行版本控制操作,如pull、commit、push等。
· 在编辑器中关闭文件。
· 切换了焦点窗口。
· 关闭一个项目。
· 退出IDE。
可以通过如下操作调整自动保存行为。执行菜单File→Settings命令打开项目设置窗口并找到Appearance & Behavior→System Settings选项,Synchronization分类下定义了相关的自动同步设置,如图2.2所示。
图2.2 同步设置
各选项的含义如下:
· Sychronize files on frame or editor tab activation:在窗口或编辑器选项卡激活时同步文件。
· Save files on frame deactivation:文件失去焦点时保存文件。
· Save files automatically if application is idle for N sec:如果应用程序空闲了 N 秒,则自动保存文件。
· Use "safe write"(save changes to a temporary file first):安全写入,在保存至临时文件后再写入文件进行保存,此操作由程序自动处理。
需要注意:这些是可选的自动保存触发器,用户无法完全关闭自动保存。
如果用户的保存操作已经成为一种习惯,或者不放心交由IntelliJ IDEA进行保存处理,则用户可以自行保存所有已更改的文件,执行菜单File→Save All命令或者按快捷键Ctrl+S即可实现保存。
在IntelliJ IDEA中自动保存操作虽然可以防止由于文件变更而丢失,但是保存在IntelliJ IDEA中的内容可能与本地内容不一样,因为IntelliJ IDEA会将所有的更新操作记录下来,而自动保存并同步到文件中需要一定的条件来触发。
所以如果文件标签页上带有*号的时候,这意味着IntelliJ IDEA中保存的内容还没有同步到本地磁盘中。不过不用担心,因为IntelliJ IDEA总是有办法帮助用户将这个文件进行同步,所以默认保存到IntelliJ IDEA中的文件上不带有*号,看起来和实时保存是一致的。
如果用户希望看到明显的标记,如使用星号标记已经修改过的选项卡,则可以按照如下位置File→Settings→Editor→General→Editor Tabs定位到编辑选项卡,然后勾选Mark modified( * )选项实现显示 * 标记,如图2.3所示。
图2.3 标记修改的文件
勾选此选项后,编辑器会在未保存文件的选项卡上显示*标记,如图2.4所示。
图2.4 带有*号的文件
在IntelliJ IDEA中没有Save As(另存为)命令。如果要将当前文件另存到其他位置,可以使用快捷键F5进行复制,然后为新文件指定名称及路径地址,如图2.5所示。
9.同步磁盘
尽管这种情况很少遇到,但是在项目工程出现结构或内容差异的时候,可以使用Reload all from Disk菜单将本地磁盘上的内容同步到当前环境中。
10.清空缓存
当需要清空缓存或是重建索引时可以使用Invalid Caches/Restart菜单清空缓存。
11.省电模式
开启Power Save Mode省电模式后,IntelliJ IDEA将不再执行代码提示与代码检查的工作。省电模式是一种适用于低配版计算机的经典模式,可以作为一种静阅读模式。
图2.5 创建文件副本
关于其他菜单的功能会在后续章节中继续讲解。
工具栏包含了基础且使用频繁的操作,例如Run/Debug Configurations(运行/调试配置)、项目结构管理、系统配置管理、版本控制管理等,用户也可以根据需要自定义工具栏上的内容。
如果需要对工具栏进行显示或隐藏,则可以执行菜单View→Appearance→Toolbar命令进行管理。当工具栏被隐藏时,其上的组件将会下移到导航栏中,如图2.6所示。
图2.6 隐藏工具栏
导航栏用于显示目录结构及加载文件,其以面包屑方式分隔路径,用户可以单击面包屑中的任意节点快速进行位置跳转,如图2.7所示。
图2.7 导航栏跳转
图2.8 快速访问导航栏
执行菜单View→Appearance→Navigation Bar命令显示或隐藏导航栏。在导航栏隐藏时,使用快捷键Alt+Home打开导航栏快速访问模式进行跳转管理,如图2.8所示。
IntelliJ IDEA通过编辑器进行程序文件的编写工作,并支持添加断点、书签等其他功能,如图2.9所示。
图2.9 编辑区
IntelliJ IDEA中的编辑区由以下几部分组成:
(1)选项卡。
(2)主编辑区。
(3)信息区。
(4)标记栏。
IntelliJ IDEA中的编辑器基于选项卡进行管理,每个编辑器都会对应一个选项卡。在编辑区可以同时打开多个编辑器进行编辑并将当前正在使用的编辑器称为活动编辑器。
1.选项卡
在编辑区内每个打开的文件都对应一个选项卡,通过管理选项卡用户可以对打开的文件进行管理操作。
例如,在按住Ctrl键的同时单击选项卡会弹出如图2.10所示的列表项,其中列出了文件所在的每一级目录,单击目标位置后会打开对应本地磁盘管理器位置的窗口。
图2.10 快速定位文件位置
当打开多个选项卡时为了便于在多个编辑器之间快速切换,可以使用组合键Alt+Left和Alt+Right在不同的编辑器之间进行顺序切换,关于选项卡的更多操作后面会继续说明。
对于每个编辑器来讲,它主要由主编辑区、左侧信息区和右侧标记栏三部分组成。
2.主编辑区
主编辑区用于编码行为的创建,用户需要在主编辑区内编写或修改程序。主编辑区提供了许多编码辅助功能,如代码快速生成、代码检查提示等。
3.信息区
信息区提供了有关程序代码的相关信息,如书签、断点、行号、Annotation标记等,附加信息区为开发者提供了代码管理的辅助手段和快速操作方式,如在接口与实现类之间进行快速跳转与定位等,如图2.11所示。
图2.11 信息区元素
在信息区主要包含了两列内容:行号与Gutter区域。行号用于显示当前程序代码所在的位置,Gutter区域则包含了大量的辅助信息,如书签、断点等。
用户可根据需要决定是否显示或取消行号,右击信息区并在弹出菜单中勾选或取消Show Line Numbers即可,如图2.12所示。
图2.12 显示或取消行号
Gutter区域不仅显示了书签、断点等有用信息,还可以进行应用的快速启动与运行、在接口与实现类之间进行快速跳转等功能。要显示或隐藏Gutter区域,可以执行菜单View→Active Editor→Show Gutter Icons命令进行勾选或取消操作,当然还可进行行号、空格等显示配置,如图2.13所示。
图2.13 显示或取消Gutter
4.标记栏
标记栏主要用于标识当前编辑区打开的文件或程序代码的状态,并通过不同颜色的导航条纹进行提示,如红色提示代表错误、蓝色提示代表TODO工作项等,用户可以单击导航条快速跳转到对应的位置。
如果当前活动编辑区中的内容超过了屏幕的范围,则标记栏还可以用于文件的快速预览。将光标移动到标记栏上的某一位置,IntelliJ IDEA会以缩略窗口的方式显示对应位置的内容以便用户快速查看,如图2.14所示。
图2.14 标记栏缩略显示
在IntelliJ IDEA中,工具窗口栏位于编辑区的左右两侧和底部,如图2.15所示。
图2.15 工具按钮组
工具窗口栏提供了很多实用的分类管理功能,如工程管理、文件结构管理、数据库管理、构建管理、收藏等。对于每个带有数字编号的功能标签项,可通过快捷键Alt+数字的方式快速访问与关闭。
要显示或隐藏工具窗口栏,可以执行菜单File→Appearance→Tool Window Bars命令进行显示或隐藏。
1.工程管理(1:Project)
工程管理窗口主要用于对当前项目的整体结构进行管理及维护。工程管理窗口展示了当前项目的模块结构,如图2.16所示。
图2.16 工程管理窗口
在开发过程中工程管理窗口具有与编辑区同样重要的角色并且结合在一起使用,可以使用快捷键Alt+1快速打开与关闭工程管理窗口。
2.文件结构管理(7:Structure)
文件结构管理窗口用于展示当前编辑区处于激活状态的文件内部结构,如图2.17所示。
在文件结构窗口中列出了当前文件内部定义的成员变量、方法及自定义结构等。通过使用文件结构管理窗口可以快速预览程序文件(尤其是大文件)的组成结构及在不同方法或位置间进行跳转。可以使用快捷键Alt+7快速打开与关闭文件结构管理窗口。
3.收藏夹管理(2:Favorites)
收藏夹用于收藏并记录开发者特别记录的文件、书签、断点等信息,如图2.18所示。
通过单击收藏夹中的标记可以快速跳转到对应程序或文件中的位置,关于收藏夹的使用后续小节中会继续说明。可以使用快捷键Alt+2快速打开与关闭收藏夹管理窗口。
工具窗口组中包含众多辅助功能,如Jenkins持续集成、Docker容器化管理等功能,这些内容我们会在后续章节中单独进行讲解与说明。
图2.17 文件结构管理窗口
图2.18 收藏夹管理窗口
在IntelliJ IDEA中状态栏主要用于显示系统操作时的状态提示(如加载项目)及文件信息等,它位于工具窗口的最底部。
在状态栏左侧有一个 图标按钮,单击此按钮可以对工具窗口组进行隐藏,同时将图标更改为 ,如图2.19所示。
图2.19 隐藏工具窗口组
当单击 按钮时可以再次恢复工具窗口组。同时,当鼠标覆盖在 或 图标上方时会弹出工具列表,单击其中的列表元素可直接打开某一工具窗口。
在状态栏右侧可以看到以冒号分隔的数字对,这对数字代表了当前编辑器中光标所在的行位置与列位置。单击数字会弹出Go to Line/Column位置跳转对话框,在文件内容过多时可以通过位置跳转对话框快速定位到指定的行位置与列位置,如图2.20所示。
在状态栏中CRLF代表当前系统使用的默认换行。单击CRLF会展开Line Separator列表,用户可以在此处选择当前系统待使用的换行符,如图2.21所示。
图2.20 位置跳转窗口
图2.21 指定换行符
其中CR是经典macOS系统中使用的换行符,后来macOS使用与Linux一致的LF换行符,但是在Windows环境下依然是CRLF。
之所以允许对换行符进行设定是因为不同操作系统所采用的换行方式是不一样的,因此在环境发生变化时代码有可能产生编译问题。通常用户不会对此进行设置,因为IntelliJ IDEA默认采用了System-Dependent的方式,也就是依赖于系统的方式。
可以通过菜单File→Settings→Code Style→General→Line separator找到如图2.22所示的配置界面。
图2.22 配置换行符
状态栏中的锁式图标 允许用户设置当前文件的编辑状态,这样做的好处是可以对当前文件进行锁定设置(只读模式)以避免在某些情况下对文件产生不必要的修改。
单击 与 图标可以在只读与编辑状态之间进行切换。当文件处于锁定状态时,如果用户不小心按到了键盘,则系统会弹出Clear Read-Only Status确认对话框询问用户是否清除只读状态,如图2.23所示。
图2.23 清除只读状态
图标按钮的操作将在代码检查小节中进行说明。
当系统中集成了某些插件工具后,它们也有可能显示在状态栏中,如Jenkins插件的显示图标为黑色圆点 。