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

176
在Intellij IDEA中,是否有可能在键入分号或任何事件后,字符串的格式化会自动发生?
例如,转换为:
a+b=10;

之后:

a + b = 10;

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

2
Alt + c + r - Gayan Weerakutti
如果您希望此功能包含在IntelliJ本身中(而不是任何插件中),请在此处投票:https://youtrack.jetbrains.net/issue/IDEABKL-5806 - Line
16个回答

226

Intellij IDEA 中的格式化快捷键如下:

  • Windows: Ctrl + Alt + L
  • Ubuntu: Ctrl + Alt + Windows + L
  • Mac: ⌥ (Option) + ⌘ (Command) + L

127
好的,但我希望这个过程可以自动完成,不需要按热键来完成。 - 0x131313
宏?ctrl+alt+l 变成了 ctrl+alt+l+enter - Jeff
30
题目明确要求在每行编写后进行“自动格式化”。 - bokan
2
@axelrod,在保存或编译代码时有自动执行的方法吗? - Kasun Siyambalapitiya
4
这并没有回答问题,Nafiur Rahman Khadem的回答才是。 - Dakatine
显示剩余2条评论

37

你可以使用Save Actions 插件来实现这个功能。

参考这篇文章 来配置插件。

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

  1. 安装插件
  2. 进入 设置 > 其他设置 > Save actions
  3. 勾选 激活保存时执行 save actions
  4. 勾选 重新格式化文件
  5. 点击 应用 > 确定

enter image description here

我更喜欢使用快捷键,对于 Mac:

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

并且,我还使用以下快捷键进行额外的操作:Ctrl+Alt(Option)+O,这将删除未使用的导入并格式化导入列表。


28

我已经找到两种方法来完成这个操作:

  1. 前往 设置> 键盘映射。在右侧部分,进入 编辑器操作> 完成当前语句。点击它,选择添加键盘快捷方式。按下 ; 并选择确认。

  2. 使用宏。前往

编辑> 宏> 开始录制宏

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

进行重新格式化后,前往

编辑> 宏> 停止录制宏

将宏保存为名称(自动格式化或其他名称)。然后前往

设置> 键盘映射> 宏> 自动格式化(宏名称)。

单击那里并选择添加键盘快捷方式,然后按下分号并单击确认。现在每当您按下分号时,它将写入分号并自动格式化。


不错。我也使用了第一种方法添加了 Shift+[ 来格式化编写 if 语句和方法等的行。但出于某种原因,Enter 似乎无法工作。 - Matt
3
非常有帮助,很奇怪Intellij竟然没有自动格式化选项。 - Trash Can

13

Eclipse有一个选项,可以在保存文件时自动格式化代码。虽然IntelliJ没有这个选项,但是您可以为Ctrl+S(Mac上的Cmd+S)键配置宏来格式化并保存代码。

Intellij在保存文件时进行重新格式化


7

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

我在其中添加了;键。当在行末输入';'时,它会自动格式化。

更新

我意识到这样做会在某些情况下导致问题。使用 Ctrl+Shift+Enter 代替。此快捷键可以在行中任何位置使用,它将在行末添加;。此外,此快捷键还有其他一些有用功能。

例如:

public void someMethod()

缩略方式之后:

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

因此,在插入;时不需要进行格式化。


聪明,但不适用于Kotlin。 - jobbert

6

您也可以通过Ctrl+WindowsBtn+Alt+L实现此操作。对于一些人来说,这非常重要,因为在某些虚拟机中,Ctrl+Alt+L可能会注销您的账户。


6

默认的快捷键是Ctrl+Alt+L

您可以在键盘映射对话框中配置/覆盖所有键盘快捷键。

导航到 文件->设置->键映射。

enter image description here


4

3
如果您愿意,可以使用saveActions插件。您可以重新格式化文件、优化导入等多种操作,它非常可定制和易于设置。

3

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

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


1
到目前为止,有没有联系IntelliJ的方式?如果有,请在此处发布链接 :) - Ruth
@RuthiRuth 找到了 ;) https://youtrack.jetbrains.net/issue/IDEABKL-5806 - Line

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接