413

我记得在 IntelliJ 或 Eclipse 中看到了在保存文件时重新格式化(清理)文件的设置。我如何找到它(在设置中没有找到它)

4

14 回答 14

464

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

  1. 制作一个宏(我使用了 Organize Imports、Format Code、Save All)
  2. 给它分配一个按键(我覆盖了Ctrl+ S

注意:对于有组织的导入,您必须在第一次选中“不再显示此消息”框,但之后它会按预期工作。

IntelliJ 10.0 的分步说明:

  1. Code -> “Optimize Imports...”,如果出现对话框,勾选“Do not show this message again.”复选框,然后点击“Run”。
  2. 工具->“开始宏录制”
  3. 代码->“优化导入...”
  4. 代码->“重新格式化代码...”
  5. 文件->“全部保存”
  6. 工具->“停止宏录制”
  7. 命名宏(类似于“格式化保存”)
  8. 在文件->设置->键盘映射中,选择位于“主菜单->工具->“格式化保存”的宏
  9. 单击“添加键盘快捷键”,然后执行所需的击键。如果您像我一样选择Ctrl+ S,它会询问您如何处理之前的Ctrl+S快捷方式。去掉它。如果需要,您可以随时重新分配它。
  10. 享受!

对于 IntelliJ 11,替换

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

其他一切都保持不变。

智能 12

8. Preferences 包含 Keymap 设置。使用输入字段过滤内容,如屏幕截图所示。

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

于 2011-04-07T13:36:53.840 回答
325

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

与eclipse 格式化程序插件结合使用效果很好。

搜索并激活插件:

在此处输入图像描述

配置它:

在此处输入图像描述

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

该插件的这个 github issue 提示了一些可能的解决方案:

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

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

于 2015-02-26T17:10:19.687 回答
95

以下是尼尔更新的答案。

IntelliJ 13 步骤:

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

我将其设置为在办理登机手续时自动清理,这通常对我来说已经足够了。如果有些东西太难看,我会点击快捷方式(Ctrl- Alt- L, Return)。而且我看到他们可以选择自动格式化粘贴的代码,尽管我从未使用过。

于 2009-06-16T00:12:29.830 回答
28

如果您有 InteliJ Idea Community 2018.2 及更高版本,步骤如下:

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

重新启动您的 IDE 并尝试一下。

我知道你要说什么,我之前的人也写过同样的东西。但是我对这篇文章上面的步骤感到困惑,我想为拥有最新版本 IDE 的人写一个愚蠢的版本。

于 2018-11-19T08:39:27.297 回答
21

Ctrl++是格式文件(包括以下两个AltL

Ctrl++AltO优化导入

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

我通常在提交工作之前运行Ctrl++Alt几次。L我宁愿它按照我的命令进行清理/重新格式化,而不是自动进行。

于 2009-06-17T02:16:25.750 回答
15

如果您在 Flutter 中进行开发,那么自 2018 年 5 月 1 日起,有一个新的实验选项允许您在保存时格式化代码。设置

于 2018-05-01T23:50:14.953 回答
10

Reformat code...我最终将操作重新绑定到Ctrl- S,替换了Save All.

一开始可能听起来很疯狂,但 IntelliJ 似乎节省了几乎所有操作:运行测试、构建项目,甚至在关闭编辑器选项卡时也是如此。我有打的习惯Ctrl——S经常打,所以这对我来说确实很有效。它肯定比用于重新格式化的默认绑定更容易键入。

于 2014-06-14T03:10:29.883 回答
9

麾!在IDEA 2021.2中终于有了“File->Settings->Tools->Actions on Save”,可以选择“Reformat code”、“Optimize imports”、“Rearrange code”、“Run code cleanup”、“Run eslint --修复”等

于 2021-08-03T02:43:59.253 回答
6

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

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

于 2016-04-24T15:35:51.843 回答
5

对于 PyCharm/IntelliJ IDEA:

  1. 安装黑色。

$ pip install black

  1. 找到您的黑色安装文件夹。

在 macOS / Linux / BSD 上:

$ which black
/usr/local/bin/black  # possible location

在 Windows 上:

$ where black
%LocalAppData%\Programs\Python\Python36-32\Scripts\black.exe  # possible location

请注意,如果您使用的是 PyCharm 检测到的虚拟环境,则无需执行此步骤。在这种情况下,黑色的路径是$PyInterpreterDirectory$/black

  1. 在 PyCharm/IntelliJ IDEA 中打开外部工具

在 macOS 上:PyCharm -> 首选项 -> 工具 -> 外部工具

在 Windows / Linux / BSD 上:文件 -> 设置 -> 工具 -> 外部工具

  1. 单击 + 图标以添加具有以下值的新外部工具:
Name: Black
Description: Black is the uncompromising Python code formatter.
Program: <install_location_from_step_2>
Arguments: "$FilePath$"
  1. 通过选择工具 -> 外部工具 -> 黑色来格式化当前打开的文件。

或者,您可以通过导航到首选项或设置 -> 键盘映射 -> 外部工具 -> 外部工具 - 黑色来设置键盘快捷键。

  1. (可选)在每个文件保存时运行 Black:

确保您已安装 File Watchers 插件。

转到首选项或设置 -> 工具 -> 文件观察器,然后单击 + 添加新观察器:

Name: Black
File type: Python
Scope: Project Files
Program: <install_location_from_step_2>
Arguments: $FilePath$
Output paths to refresh: $FilePath$
Working directory: $ProjectFileDir$

在高级选项中取消选中“自动保存编辑的文件以触发观察者”

为了用 Black 格式化 Python 文件,我遵循了这个指南,它也使用了 File Watcher: https ://black.readthedocs.io/en/stable/editor_integration.html

于 2021-03-05T13:23:44.963 回答
2

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

于 2009-06-03T20:59:35.653 回答
2

如果是关于 Prettier,只需使用 File Watcher :

参考 => 工具 => 文件观察器 => 单击 + 添加新观察器 => 更漂亮

https://prettier.io/docs/en/webstorm.html#running-prettier-on-save-using-file-watcher

于 2018-10-04T08:29:31.137 回答
2

从版本 2020.1 开始,您可以直接在Prettier插件的 Preferences 中激活Run on save for files

Prettier 插件的首选项

于 2020-06-16T08:39:04.330 回答