【问题标题】:How enable auto-format code for Intellij IDEA?如何为 Intellij IDEA 启用自动格式化代码?
【发布时间】:2013-07-26 14:42:10
【问题描述】:

在 Intellij IDEA 中输入 ';' 后是否可以?还是按 'Enter' 发生了这个字符串的格式化?

例如, 到:

a+b=10;

之后:

a + b = 10;

或唯一可能的选项:代码 > 重新格式化代码...

谢谢!

【问题讨论】:

标签: intellij-idea format reformat


【解决方案1】:

Intellij IDEA 中的格式化快捷键是:

  • 对于 Windows:Ctrl + Alt + L
  • 对于 Ubuntu:Ctrl + Alt + Windows + L
  • 对于 Mac:⌥(选项) + ⌘(命令) + L

【讨论】:

  • 是的,但我希望无需按任何热键即可自动执行此操作。
  • 宏? ctrl+alt+l 变成 ctrl+alt+l+enter
  • 问题在每行写完后都明确说明“自动格式化”。
  • @axelrod 有没有办法在保存或编译代码时自动执行此操作
  • 这不能回答问题。 Nafiur Ra​​hman Khadem 的回答确实如此。
【解决方案2】:

我找到了两种方法:

  1. 转到Settings> Keymap.在右侧部分转到Editor Actions> complete current statement.单击它并选择添加键盘快捷键。按 ;并选择确定。

  2. 使用宏。前往

Edit> Macros> Start Macro Recording.

现在按分号和键盘快捷键重新格式化代码(您可以从其他答案或设置 > 键盘映射中找到键盘快捷键)。

重新格式化后转到

Edit> Macros> Stop Macro Recording

使用名称(自动格式或其他名称)保存宏。然后去

Settings> Keymap> Macros> auto format(宏名称)。

单击此处并选择添加键盘快捷键,然后按分号并单击确定。现在,每当您按分号时,它都会写入分号并进行自动格式化。

【讨论】:

  • 不错。在编写if 语句和方法等时,我还使用第一种方法添加了Shift+[ 来格式化行。不过,出于某种原因,Enter 似乎不起作用。
  • 这很有帮助,奇怪的是 Intellij 根本没有自动重新格式化选项
【解决方案3】:

您可以使用Save Actions plugin 执行此操作 参考This article on how to configure the plugin.

Save Actions 插件支持可配置的、类似 Eclipse 的保存操作,包括“优化导入”、“重新格式化代码”、“重新排列代码”、“编译文件”和一些针对 Java 的快速修复,例如“添加/删除 'this' 限定符"等。当文件在磁盘上同步(或保存)时,插件会执行配置的操作。

  1. 安装插件
  2. 转到设置 > 其他设置 > 保存操作
  3. 勾选保存时激活保存操作
  4. 勾选重新格式化文件
  5. 应用 > 确定

我更喜欢热键,对于 Mac,

格式化代码:Ctrl+Alt(Option)+L

并且另外我这样做了:Ctrl+Alt(Option)+O , 这将删除未使用的导入并格式化导入列表。

【讨论】:

    【解决方案4】:

    Eclipse 可以选择在保存文件时自动格式化。 IntelliJ 中没有此选项,尽管您可以为 Ctrl+S(Mac 上为 Cmd+S)键配置宏来格式化代码并保存。

    Intellij reformat on file save

    【讨论】:

      【解决方案5】:

      文件->设置->键盘映射->完成当前语句

      我在那里添加了; 键。输入“;”时在行尾,它是自动格式化的。

      更新

      我意识到这在某些情况下会导致一些问题。请改用Ctrl+Shift+Enter。该键可用于一行中光标的任意位置。它将在行尾添加;。此快捷方式还有一些其他有用的功能。

      喜欢:

      public void someMethod()
      

      快捷方式后:

      public void someMethod() {
          // The cursor is here
      }
      

      所以在插入; 时不需要格式化。

      【讨论】:

      • 智能,但不适用于 Kotlin
      【解决方案6】:

      这也可以通过Ctrl+WindowsBtn+Alt+L来实现。这对某些人来说很重要,因为在某些虚拟机中,Ctrl+Alt+L 可以让您注销。

      【讨论】:

        【解决方案7】:

        默认是Ctrl+Alt+L 有一个键映射对话框,您可以在其中配置/覆盖所有键盘快捷键。

        导航文件->设置->按键映射

        【讨论】:

          【解决方案8】:

          Ctrl+Shift+Enter 组合(Complete Statement) 也可以完成这项工作,让一些更方便具有函数、循环等的东西。

          JetBrains 文档:https://www.jetbrains.com/help/idea/2016.3/completing-statements.html

          【讨论】:

            【解决方案9】:

            Intellij 中的所有解决方案都没有 Eclipse 中的那么优雅(或有用)。我们需要的是对 intellij 的功能请求,以便我们可以在 IDE 自动保存时添加一个钩子(要执行的操作)。

            在 Eclipse 中,我们可以添加“保存后”操作,例如组织导入和格式化类。是的,您必须执行“保存”或 ctrl-s,但挂钩非常方便。

            【讨论】:

            【解决方案10】:

            如果你愿意,你可以使用saveActions 插件。您可以重新格式化文件,优化导入等等,它真的可以自定义且易于设置。

            【讨论】:

              【解决方案11】:

              这是不可能的,但是在 intellij 13 中,如何添加鼠标手势,比如单击鼠标左键来重新格式化代码?或者,如果您不经常使用鼠标,则添加一个您一直使用的非常简单的键盘热键(可能是“输入”?说实话,不确定 intellij 是否会满意)

              【讨论】:

              • 为什么投反对票?我是说你想要的东西是不可能的,并试图提供最接近的东西..
              • 反对票很容易解释:鼠标点击。 IntelliJ 的一大优势是快捷方式,而且您不需要经常使用鼠标。如果你写了很多代码,你不想用鼠标太多,因为你用键盘更快。已经有格式化的快捷方式了。
              【解决方案12】:

              在 Mac 中是 Alt+Command+L(假设您没有更改任何 modifier keys 或 Intellij 键盘快捷键从它的默认状态)

              【讨论】:

                【解决方案13】:

                根据Larson 的评论,现在可以通过save-actions 插件实现。

                【讨论】:

                • 谢谢,但问题是关于自动重新格式化,而不是在保存时重新格式化。
                【解决方案14】:

                我知道这个问题已经很老了,但实际上有一个 IntelliJ 的 Save Actions 插件可以配置为自动格式化代码。

                【讨论】:

                  【解决方案15】:

                  我在 Microsoft Visual Studio 中实现自动重新格式化的方式(它并不完美):

                  1. Edit > Macros > Start Macro Recording
                  2. Press continuously: Enter + Ctrl+Alt+I
                  3. Edit > Macros > Stop Macro Recording (Name it for example ReformatingByEnter)
                  

                  现在我们需要执行相同的操作,但要使用 Ctrl+Alt+L+;

                  4. Edit > Macros > Start Macro Recording
                  5. Press continuously: ; + Ctrl+Alt+I
                  6. Edit > Macros > Stop Macro Recording (Name it for example ReformatingBy;)
                  

                  现在我们需要为这些宏分配热键:

                  7. File > Settings > Keymap > press on a gear button > Duplicate...
                  8. Unfold a macro button (beneath) and by right clicking on two 
                  ours macros assign HotKeys for them: "Enter" and ";" correspondingly.
                  

                  【讨论】:

                  • 可能是我键盘的限制,但我似乎一次只能录制 3 个键。
                  猜你喜欢
                  • 1970-01-01
                  • 2023-03-09
                  • 2014-04-20
                  • 2014-01-05
                  • 1970-01-01
                  • 1970-01-01
                  • 2018-06-22
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多