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

时间:2013-07-26 10:51:20

标签: intellij-idea format reformat

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

例如, 到:

a+b=10;

后:

a + b = 10;

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

谢谢!

15 个答案:

答案 0 :(得分:122)

IntelliJ中的自动格式化快捷方式

  • 对于Windows Ctrl + Alt + L
  • 对于ubuntu Ctrl + Alt + windows + L
  • 适用于Mac 命令 + 选项 + L

答案 1 :(得分:14)

我找到了两种方法:

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

  2. 使用宏。转到

  3. Edit> Macros> Start Macro Recording.

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

    重新格式化之后转到

    Edit> Macros> Stop Macro Recording

    使用名称(自动格式或其他内容)保存宏。然后转到

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

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

答案 2 :(得分:12)

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

Intellij reformat on file save

答案 3 :(得分:6)

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

导航文件 - >设置 - >关键地图

enter image description here

答案 4 :(得分:6)

文件>设置 - > Keymap->完整的当前声明

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

<强>更新

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

像:

public void someMethod()

快捷方式后:

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

因此无需插入;格式化。

答案 5 :(得分:4)

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

答案 6 :(得分:4)

Ctrl + Shift + 输入组合(完整声明)也可以完成这项工作,并提供更多便利有功能,周期等的东西

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

答案 7 :(得分:4)

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

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

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

enter image description here

我更喜欢热键,对于Mac,

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

然后另外,我做的是: Ctrl + Alt(选项) + O ,这将删除未使用的导入并格式化导入列表。

答案 8 :(得分:2)

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

答案 9 :(得分:2)

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

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

答案 10 :(得分:1)

嗯,这是不可能的,但是在intellij 13中,如何添加鼠标手势,例如单击鼠标左键来重新格式化代码?或者,如果你不使用鼠标,那么添加一个你一直使用的非常简单的键盘热键(可能是“输入”?不确定intellij是否会对此表示满意)

答案 11 :(得分:1)

我在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;)

现在我们需要将HotKeys分配给这些宏:

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.

答案 12 :(得分:1)

通过Larson的注释,现在可以使用save-actions插件。

答案 13 :(得分:0)

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

答案 14 :(得分:0)

如果需要,可以使用saveActions插件。您可以重新格式化文件,优化导入以及更多操作,它确实可自定义且易于设置。