如何为 Intellij IDEA 启用自动格式化代码?

Posted

技术标签:

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

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

例如, 到:

a+b=10;

之后:

a + b = 10;

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

谢谢!

【问题讨论】:

Alt + c + r 如果您希望将此功能包含在 IntelliJ 本身中(而不是在任何插件中),请在此处投票:youtrack.jetbrains.net/issue/IDEABKL-5806 【参考方案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】:

我找到了两种方法:

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

    使用宏。前往

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' 限定符"等。当文件在磁盘上同步(或保存)时,插件会执行配置的操作。

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

我更喜欢热键,对于 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,但挂钩非常方便。

【讨论】:

目前有任何关于 htis 的 intellij 联系方式吗?如果是这样,请在此处发布链接:) @RuthiRuth 找到了 ;) youtrack.jetbrains.net/issue/IDEABKL-5806【参考方案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 个键。

以上是关于如何为 Intellij IDEA 启用自动格式化代码?的主要内容,如果未能解决你的问题,请参考以下文章

Intellij IDEA 代码格式化/保存时自动格式化

如何为 IntelliJ IDEA 中的所有项目设置默认项目位置?

如何为 Android 应用程序设置 IntelliJ IDEA?

如何为所有 IntelliJ IDEA 配置默认的“Shorten command line”方法(或其他运行/调试配置选项)?

Intellij Idea 快捷键

IntelliJ Idea 常用快捷键列表