如何为 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 Rahman 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 中的所有项目设置默认项目位置?
如何为 Android 应用程序设置 IntelliJ IDEA?
如何为所有 IntelliJ IDEA 配置默认的“Shorten command line”方法(或其他运行/调试配置选项)?