Intellij重新格式化文件保存


353

我记得在IntelliJ或Eclipse中都看到过在保存文件时重新格式化(清除)文件的设置。我如何找到它(在设置中找不到)

Answers:


235

我建议保存动作插件。它还支持优化导入和重新排列代码。

eclipse formatter插件结合使用时效果很好。

搜索并激活插件:

在此处输入图片说明

配置它:

在此处输入图片说明

编辑:似乎它是Intellij的最新版本,保存操作插件是由Intellij自动保存触发的。当它仍然在编辑时命中时,这可能会很烦人。

这个插件的github问题暗示了一些可能的解决方案:

https://github.com/dubreuia/intellij-plugin-save-actions/issues/63

我实际上试图将重新格式化分配给Ctrl+ S,并且工作正常-现在自动完成保存。


我使用了它,但是在更新到Android Studio 1.5.1之后,我找不到了。
r1k0

1
该插件(截至目前)的最新更新为10.02.2016,并说Compatibility This plugin works with Java 6+ and Intellij IDEA Community Edition after 131 (around version 13).我不知道IntelliJ Android Studio的版本。你能检查一下吗?
本杰明·彼得

到顶部,你去!
Nick Grealy

几乎为我工作。不幸的是,“重新格式化代码”只能做“代码>重新格式化代码”所做的事情的一部分(至少对于Scala代码而言)。这是为什么?
Thilo

尝试过此操作,但IntelliJ可以节省很多时间。组织导入会弹出2-3次击键。
Ashley

443

此解决方案对我来说效果更好:

  1. 制作一个宏(我使用了“整理导入”,“格式代码”,“全部保存”)
  2. 给它分配一个击键(我覆盖Ctrl+ S

注意:对于有组织的导入,您将必须首次选中“不再显示此消息”框,但此后可以正常使用。

IntelliJ 10.0的分步指南:

  1. 代码->“优化导入...”,如果出现对话框,请选中“不再显示此消息。”复选框,然后单击“运行”。
  2. 工具->“开始宏录制”
  3. 代码->“优化导入...”
  4. 代码->“重新格式化代码...”
  5. 文件->“全部保存”
  6. 工具->“停止宏录制”
  7. 为宏命名(类似于“格式化的保存”)
  8. 在文件->设置->键盘映射中,选择位于“主菜单->工具->“格式化的保存”中的宏
  9. 单击“添加键盘快捷键”,然后执行所需的击键。如果您选择Ctrl+ S和我一样,它将询问您如何使用上一个Ctrl+ S快捷方式。去掉它。如果需要,您随时可以重新分配。
  10. 请享用!

对于IntelliJ 11,替换

步骤2.使用:编辑->宏->“开始宏录制”
步骤6.使用:编辑->宏->“停止宏录制”

其他一切保持不变。

IntelliJ 12

8.首选项包含键盘映射设置。使用输入字段来过滤内容,如屏幕截图所示。

Intellij /首选项/键盘映射/宏


4
在IntelliJ 11中:1:开始宏录制:编辑->宏->开始宏录制。2:按照上面的说明进行操作。3:停止宏录制:编辑->宏->停止宏录制。在Keymap中,宏将保存到Macros文件夹中,而不是Main Menu-> Tools文件夹中。
Markus K

3
如果您对重新格式化代码感到满意,那么如果您选择重新格式化项目中的所有代码并保存所有代码,则此方法会更好。否则,当您进行多文件编辑时,只有活动的文件才会重新格式化,然后再保存所有修改的文件。
Drew Noakes

86

以下是尼尔的答案更新。

IntelliJ 13个步骤:

  1. 代码->重新格式化代码 在此处输入图片说明
  2. 编辑->宏->开始宏录制
  3. 代码->重新格式化代码
  4. 文件->全部保存
  5. 编辑->宏->停止宏录制
  6. 为宏命名(类似于“格式化的保存”)
  7. 文件->设置->键盘映射
  8. 右键单击宏。添加键盘快捷键。将键盘快捷键设置为Control +S。 在此处输入图片说明
  9. IntelliJ会通知您热键冲突。选择“删除”以删除其他分配。

但这将删除“保存”操作。发布者看到的是,在Eclipse中,我们可以选择格式化代码并在保存文件时自动组织导入。(我假设)IntelliJ想法中没有此选项。这项工作涉及将保存密钥绑定到重新格式化密钥。
Ganesh Krishnan 2015年

3
我不同意@GaneshKrishnan。此解决方法不会将“保存键”绑定到“重新格式化键”。它将其绑定到“重新格式化保存” 的宏,这正是OP所要求的以及在Eclipse中实现的内容,但都带有一个复选框。
dbm

1
我认为也许对于步骤1来说,您是说“代码->显示重新格式化文件对话框”来设置“重新格式化文件对话框”的默认设置(以便为步骤3-重新格式化代码正确设置)?
studgeek

61

我将其设置为在登机时自动清理,这通常对我来说已经足够了。如果事情是太丑陋了,我只是打了快捷键(Ctrl- - Alt,)。L Return而且我看到他们有一个用于自动格式化粘贴代码的选项,尽管我从未使用过。


12
您也可以使用Ctrl-Shift-F格式化。这对我来说效果更好,因为Ctrl-Alt-L是Ubuntu上的锁定屏幕命令。
杰森·麦维塔

22
Ctrl + Shift + F是“在路径中查找”
2013年

5
您如何设置在办理登机手续时发生的事情?
2013年

2
如果您不使用intelliJ签入,那行得通吗,即,我认为如果您使用命令行工具签入,则行不通。

那如何回答这个问题?
2016年

19

Ctrl+ Alt+ L是格式文件(包括下面两个)

Ctrl+ Alt+ O是优化导入

Ctrl+ Alt+ I将修复特定行上的缩进

我通常跑Ctrl+ Alt+ L提交我的工作之前几次。我希望它在命令中执行清除/重新格式化,而不是自动执行。


将Ctrl替换为Mac的Cmd
Gerard 2014年

12
在Linux上要小心,Ctrl + Alt + L通常是Lock Session。您需要重新映射其中一个功能。
2014年

18

如果您拥有InteliJ Idea Community 2018.2,则步骤如下:

  1. 在顶部菜单中,单击:编辑>宏>开始宏录制(您将在屏幕的右下角看到一个窗口,确认正在录制宏)
  2. 在顶部菜单中,单击:代码>重新格式化代码(您会在右下角看到选中的选项)
  3. 在顶部菜单中,单击:代码>优化导入(您会在右下角看到选中的选项)
  4. 在顶部菜单中,单击:文件>全部保存
  5. 在顶部菜单中,单击:编辑>宏>停止宏记录
  6. 您将宏命名为:“格式代码,组织导入,保存”
  7. 在顶部菜单中,您需要进行以下操作:文件>设置。在设置窗口中,单击“键盘映射”
  8. 在右侧的搜索框中,搜索“保存”。您会找到全部保存(Ctrl + S)。右键单击它,然后选择“删除Ctrl + S”
  9. 从框中删除搜索文本,按全部折叠按钮(左上角的第二个按钮)
  10. 转到宏,按箭头展开您的宏,找到您保存的宏,然后右键单击它。选择添加键盘快捷键,然后按Ctrl + S并确定。

重新启动您的IDE并尝试。

我知道你会说什么,在我之前的家伙写了同样的东西。但是我对本文上面的步骤感到困惑,我想为拥有最新版本IDE的人编写一个精简版。


13

如果您是在Flutter中进行开发,则从2018年5月1日起有一个新的实验选项,可让您在保存时格式化代码。 设定值


9

我将Reformat code...操作重新绑定为Ctrl- S,替换了默认的绑定Save All

乍一看听起来很疯狂,但IntelliJ似乎可以节省几乎所有操作:运行测试,构建项目,即使关闭编辑器选项卡也是如此。我有打球的习惯Ctrl-很多S时候,所以实际上对我来说很好。当然,键入要比默认绑定重新格式化更容易。


5

IntellIJ 14 && 15:在“提交更改”对话框中签入代码时,请选中“重新格式化代码”复选框,然后IntelliJ将重新格式化所有您签入的代码。

资料来源:www.udemy.com/intellij-idea-secrets-double-your-coding-speed-in-2-hours



4
注意,过度宣传一种资源可能会被社区解释为垃圾邮件。您应该发布良好且相关的答案,并且如果一两个碰巧提到了此课程,那很好-但是,如果您将其发布在每个答案中,它将被标记并删除。
ArtOfCode

2

我以为IntelliJ中有类似的东西,但我找不到。保存时唯一发生的清除是删除了行尾的空白。我以为我必须在某一时刻指定该行为,但在这一点上我看不到任何相关信息。


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.