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


129

键入“;”后是否可以在Intellij IDEA中使用 或按“ Enter”键发生此字符串的格式化?

例如,要:

a+b=10;

后:

a + b = 10;

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

谢谢!



如果您想对被列入的IntelliJ本身(而不是在任何插件)此功能,请投票在这里:youtrack.jetbrains.net/issue/IDEABKL-5806
在线

Answers:


181

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

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

88
是的,但是我希望这种情况自动发生而无需按任何热键。
13年

宏?ctrl + alt + l变成ctrl + alt + l + enter
Jeff

17
每行写完后,问题明确指出“自动格式化”。
bokan 2014年

2
@axelrod有一种在保存或编译代码时自动执行此操作的方法
Kasun Siyambalapitiya

3
那不能回答问题。Nafiur Ra​​hman Khadem的回答是正确的。
Dakatine '18年

22

我发现了两种方法可以做到这一点:

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

  2. 使用宏。去

Edit> Macros> Start Macro Recording.

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

重新格式化后,前往

Edit> Macros> Stop Macro Recording

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

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

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


真好 Shift+[在编写if语句和方法等时,我还添加了使用第一种方法来格式化行的格式。但是由于某种原因,Enter它似乎没有起作用。
马特

1
这非常有帮助,很奇怪Intellij根本没有自动重新格式化选项
Teedeez

12

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

Intellij重新格式化文件保存


7

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

浏览文件->设置-> KeyMap

在此处输入图片说明


7

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

;在那儿加了钥匙。输入“;”时 在该行的末尾,它是自动格式化的。

更新

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

喜欢:

public void someMethod()

捷径之后:

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

因此插入时;无需格式化。


聪明,但不适合Kotlin
Jobbert

6

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



3

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

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


1
到目前为止,intellij是否与htis有任何联系?如果是这样,请在此处发布链接:)
Ruthi Ruth



2

在Mac中,它是Alt+ Command+ L(假设您尚未从默认状态更改任何修饰键或Intellij键盘快捷键)



1

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


2
为什么要下票?我说你想要的东西是不可能的,并试图与最接近的可能的事情提供..
sakis kaliakoudas

下注很容易解释:单击鼠标。IntelliJ的一大优势是快捷方式,您不需要经常使用鼠标。如果您编写大量代码,则您不想使用太多鼠标,因为使用键盘的速度更快。已经有用于格式化的快捷方式。
Phil 2015年

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

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

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个按键。
马特

1

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


1

您可以使用Save Actions插件执行此操作。有关如何配置插件的信息, 请参阅本文。

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

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

在此处输入图片说明

我更喜欢热键,对于Mac,

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

另外我做的,:Ctrl+ Alt(Option)+ O ,这将删除未使用的进口和格式化进口名单。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.