草庐IT

跟光磊学Java-macOS版IntelliJ IDEA设置

ittimeline 2023-04-22 原文

在使用IntelliJ IDEA开发项目之前还需要进行一些基本的设置,完成这些设置以后能让项目开发更加顺畅

1. 如何打开设置窗口

在进行IntelliJ IDEA相关设置之前首先需要知道如何打开设置窗口

首先我们需要点击程序坞的IntelliJ IDEA 打开IntelliJ IDEA 2022.3

打开IntelliJ IDEA后会看到欢迎窗口

然后依次点击Customize->All Settings…

最后就可以打开IntelliJ IDEA的设置窗口,在该窗口下可以完成IntelliJ IDEA相关的设置

由于IntelliJ IDEA提供了非常多的设置项,比如外观和行为、快捷键、编辑器、插件、版本控制等等,因此提供搜索功能用于快速搜索设置项,建议大家在进行相关设置时在搜索框搜索设置项

还有一点需要注意的是在进行相关设置后点击右下角的Apply设置会生效,所有设置完成后点击OK关闭设置窗口

2. 外观与行为设置

2.1 外观设置

2.1.1 主题设置

IntelliJ IDEA默认使用的Darcula主题

大家可以根据自己的喜好切换其他主题,例如IntelliJ Light

我个人比较喜欢Darcula,因此后面全程都使用该主题

2.1.2 外观字体设置

IntelliJ IDEA 默认使用的.AppleSystemUIFont, 字体大小是13

如果你觉得不合适,可以选择其他字体和合适的字体大小
由于我使用的MacBook外接27寸4k显示器屏幕,因此我会将外观字体默认的13改成16,但是需要注意的是16不一定适合你,因为每个人电脑的屏幕大小不同,选择的字体大小也可能不同,如果使用的是笔记本电脑(15寸,17寸),建议默认13即可

外观字体修改完成之后重新打开设置窗口,IntelliJ IDEA的外观可能看起来更加舒服

2.2 新UI设置

在 IntelliJ IDEA 2022.3.1中可以切换到新 UI 并预览 IDE 完全重做的外观,新外观干净、现代且功能强大。
默认情况下还未启用新UI,因为还处于Beta版本。也就还不是一个稳定版本

如果你想尝试新UI,那么勾选Enable new UI

新UI界面

2.3 系统设置

2.3.1 启动时重新打开项目设置

IntelliJ IDEA默认情况下是启动时重新打开项目,也就是启动IntelliJ IDEA后直接打开最近关闭的项目

通常情况下在公司可能同时开发多个项目,因此建议取消勾选 Reopen projects on startup

这样在启动IntelliJ IDEA后如果有多个项目,那么可以选择指定的项目后再打开IntelliJ IDEA

2.3.2 IntelliJ IDEA 更新设置

IntelliJ IDEA 默认情况下会检查IntelliJ IDEA 以及相关插件的更新

如果你不想更新IntelliJ IDEA或者当前使用的已经是稳定版本,那么建议取消勾选Check IDE update for Stable Relases,而仅仅保留检查插件更新

3. 编辑器设置

3.1 编辑器常规设置

默认没有启用 使用Ctrl+鼠标滚轮调整字体大小

建议启用使用Ctrl+鼠标滚轮调整字体大小

这样在编写代码时可以随时按住Ctrl键再滚动鼠标更改字体大小

3.1.1 自动导入设置

IntelliJ IDEA 自动导入设置 默认没有开启动态添加明确的import语句和动态优化import语句

在编写Java程序时默认情况下如果使用的不是java.lang包的Java类,那么需要手动导包(也就是编写import语句)

为了开发更加高效,通常情况下建议开启动态添加明确的import语句和动态优化import语句

不过如果不同包下存在同名的类(例如Date在java.sql和java.util中),那么需要手动选择指定的包

3.1.2 外观设置

默认情况下IntelliJ IDEA 没有启用显示方法之间的分隔符

因为后期我们在编写Java代码时会在同一个类中编写很多方法,为了阅读代码更加方便(区分代码所在的方法),因此建议启用显示方法之间的分隔符,也就是在多个方法之间增加一条水平线

3.1.3 代码补全

在使用IntelliJ IDEA 编辑器编写代码时会进行代码补全,例如输入Sy就会补全System,但是如果输入sy就不会补全为System,因为默认情况下代码补全是区分大小写

日常开发中建议代码补全时不区分大小写,取消勾选Match case,这样就可以不区分大小写补全代码

3.1.4 控制台设置

默认的控制台缓冲大小为1024KB

建议将控制台的缓冲大小改成10240KB,这样在后期开发项目时能看到更多控制台输出的内容

3.1.5 编辑器选项卡设置

默认情况下编辑器在一行中显示选项卡,如果打开文件比较多会隐藏部分文件选项卡

建议取消在一行中显示选项卡

3.2 编辑器字体设置

IntelliJ IDEA 编辑器的字体默认是 JetBrains Mono ,字体大小是13

字体越小,编辑器中看到的代码越多,但是比较费眼睛

由于我使用是MacBookPro外接27寸4k显示器屏幕,因此我会将编辑器字体默认的13改成22,但是需要注意的是22不一定适合你,因为每个人电脑的屏幕大小不同,选择的字体大小也可能不同,如果使用的是笔记本电脑(15寸,17寸),建议改成16。
调整后能立即看到预览效果

3.3 编辑器配色方案设置

IntelliJ IDEA 默认情况下的单行注释和多行注释的字体颜色是灰色的,其十六进制值是808080
默认单行注释字体颜色

默认多行注释字体颜色

不过在IntelliJ IDEA 2022.3中的文档注释颜色是绿色的

而且多行注释文本内容的颜色十六进制值是629755

我们这里建议将单行注释、多行注释的注释内容颜色十六进制值改成和多行注释内容的颜色一样,也就是十六进制的629755

当然你也可以随意选择自己喜欢的颜色

单行注释字体颜色改成绿色

多行注释字体颜色改成绿色

后期在编写代码时会看到程序中注释内容的颜色都是绿色

3.4 编辑器文件编码设置

默认的编辑器文件编码设置

建议属性文件默认编码调整为UTF-8,同时勾选自动转换为Ascii但显示原生内容

4. 构建、执行、部署设置

4.1 编译器设置

在使用IntelliJ IDEA开发Java项目时,建议开启自动构建项目以及并行编译独立模块

自动构建项目仅在不运行/不调试时工作
并行编译独立模块需要更大的堆内存,因此将默认的700M调整成3000M,如果以后开发多模块项目时会用到

5. 高级设置

5.1 用户界面设置

我们在编写代码时,经常会使用shift切换中文和英文,而这个容易触发双击shift打开IntelliJ IDEA的搜索框,该搜索框可以搜索任意内容。
因此建议禁用双击修改键 快捷键

那想要搜索任意内容怎么做呢?

可以使用Command+O 打开IntelliJ IDEA的搜索框 搜索类,点击All就可以在搜索框搜索任意内容

可以使用Shift+Command+O打开IntelliJ IDEA的搜索框搜索文件,点击All就可以在搜索框搜索任意内容

6. IntelliJ IDEA JVM 设置

IntelliJ IDEA是运行在JVM之上的,我们可以修改JVM的选项调整IntellliJ IDEA的性能

IntelliJ IDEA帮助文档也提供了详细的配置方法 https://www.jetbrains.com/help/idea/tuning-the-ide.html#configure-jvm-options

首先进入IntelliJ IDEA安装目录的bin目录

打开访达,选择应用程序,再找到IntelliJ IDEA后右键选择显示包内容

然后进入Contents目录

再进入bin目录

进入bin目录以后

然后修改idea.vmoptions文件,该文件可以使用文本编辑器(例如Visual Studio Code)打开

强烈建议修改之前先备份,其目的就是为了防止因为修改该文件导致IntelliJ IDEA无法启动。

-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=512m
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-XX:+IgnoreUnrecognizedVMOptions
-XX:CompileCommand=exclude,com/intellij/openapi/vfs/impl/FilePartNodeRoot,trieDescend
-ea
-Dsun.io.useCanonCaches=false
-Dsun.java2d.metal=true
-Djbr.catch.SIGABRT=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof

如果你的电脑内存32G以上,那么可以参考以下配置

-Xms1024m
-Xmx3000m
-XX:ReservedCodeCacheSize=2048m
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=200
-XX:CICompilerCount=8
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-XX:+IgnoreUnrecognizedVMOptions
-XX:CompileCommand=exclude,com/intellij/openapi/vfs/impl/FilePartNodeRoot,trieDescend
-ea
-Dsun.io.useCanonCaches=false
-Dsun.java2d.metal=true
-Djbr.catch.SIGABRT=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof

改完以后记得重启打开IntelliJ IDEA,看看是否能够正常打开

后期在开发大型项目时你会发现调整JVM Options后比默认的配置更加流畅

有关跟光磊学Java-macOS版IntelliJ IDEA设置的更多相关文章

  1. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  2. ruby-openid:执行发现时未设置@socket - 2

    我在使用omniauth/openid时遇到了一些麻烦。在尝试进行身份验证时,我在日志中发现了这一点:OpenID::FetchingError:Errorfetchinghttps://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username:undefinedmethod`io'fornil:NilClass重要的是undefinedmethodio'fornil:NilClass来自openid/fetchers.rb,在下面的代码片段中:moduleNetclass

  3. ruby-on-rails - 如何使用 instance_variable_set 正确设置实例变量? - 2

    我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击

  4. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  5. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  6. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  7. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  8. ruby-on-rails - 有没有办法为 CarrierWave/Fog 设置上传进度指示器? - 2

    我在Rails应用程序中使用CarrierWave/Fog将视频上传到AmazonS3。有没有办法判断上传的进度,让我可以显示上传进度如何? 最佳答案 CarrierWave和Fog本身没有这种功能;你需要一个前端uploader来显示进度。当我不得不解决这个问题时,我使用了jQueryfileupload因为我的堆栈中已经有jQuery。甚至还有apostonCarrierWaveintegration因此您只需按照那里的说明操作即可获得适用于您的应用的进度条。 关于ruby-on-r

  9. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  10. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

随机推荐