ChatGPT解决这个技术问题 Extra ChatGPT

Intellij 重新格式化文件保存

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


P
Paolo Forgia

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

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

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

IntelliJ 10.0 的分步说明:

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

对于 IntelliJ 11,替换

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

其他一切都保持不变。

智能 12

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

https://i.stack.imgur.com/VCNah.png


在 IntelliJ 11 中: 1:开始宏录制:编辑 -> 宏 -> 开始宏录制。 2:按照上面的说明进行操作。 3:停止宏录制:编辑->宏->停止宏录制。在 Keymap 中,宏被保存到 Macros 文件夹,而不是 Main Menu -> Tools 文件夹。
如果您对重新格式化代码的方式感到满意,那么如果您选择重新格式化项目中的所有代码并保存所有代码,这种方法会更好。否则,当您进行多文件编辑时,只有活动的文件会在所有修改被保存之前重新格式化。
我正在使用 intellij 11。宏仅格式化打开的文件,而不是整个项目。我能做些什么?
在 V 2021.2.2 中,这已成为 File | Settings | Tools | Actions on Save 中的内置功能
L
L Y E S - C H I O U K H

我建议save actions plugin。它还支持优化导入和重新排列代码。

eclipse formatter plugin 结合使用效果很好。

搜索并激活插件:

https://i.stack.imgur.com/OxcsB.png

配置它:

https://i.stack.imgur.com/Hbcx8.png

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

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

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

我实际上尝试将重新格式化分配给 Ctrl+S 并且效果很好 - 现在自动完成保存。


我用过这个,但更新到 Android Studio 1.5.1 后,我再也找不到它了。
该插件是(截至目前)最后一次更新 10.02.2016 并说Compatibility This plugin works with Java 6+ and Intellij IDEA Community Edition after 131 (around version 13).我不知道 IntelliJ Android Studio 基于哪个版本。你能检查一下吗?
几乎为我工作。不幸的是,“重新格式化代码”只会做“代码 > 重新格式化代码”所做的事情的一部分(至少对于 Scala 代码)。这是为什么?
试过这个,但 IntelliJ 经常保存。组织导入会弹出 2-3 次击键。
我正在慢慢添加新产品(Android Studio、PyCharm 等),您可以使用 beta 版本并在此处关注进步github.com/dubreuia/intellij-plugin-save-actions/issues/18(我是插件开发者)
C
Cornelius

以下是尼尔更新的答案。

IntelliJ 13 步骤:

代码 -> 重新格式化代码编辑 -> 宏 -> 开始宏录制代码 -> 重新格式化代码文件 -> 保存所有编辑 -> 宏 -> 停止宏录制 命名宏(类似于“格式化保存”)文件 -> 设置 ->键盘映射 右键单击宏。添加键盘快捷键。将键盘快捷键设置为 Control + S。IntelliJ 将通知您热键冲突。选择“删除”以删除其他分配。


但这删除了“保存”操作。发帖人看到的是,在 Eclipse 中,我们可以选择格式化代码并在保存文件时自动组织导入。这个选项(我假设)在 IntelliJ 想法中是不存在的。这是一项涉及将保存键绑定到重新格式化键的工作。
我不同意,@GaneshKrishnan。此解决方法不会将“保存键”绑定到“重新格式化键”。它将它绑定到“重新格式化和保存”的宏,这正是 OP 所要求的以及在 Eclipse 中实现的,但通过复选框触发。
我想也许对于第 1 步,您的意思是“代码 - > 显示重新格式化文件对话框”来设置重新格式化文件对话框的默认值(以便为第 3 步 - 重新格式化代码正确设置它们)?
s
stites

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


您也可以使用 Ctrl-Shift-F 进行格式化。这对我来说效果更好,因为 Ctrl-Alt-L 是 Ubuntu 上的锁屏命令。
Ctrl+Shift+F 是在路径中查找。
您如何设置在办理登机手续时发生的事情?
如果您不使用 intelliJ 签入,这是否有效,即我认为如果您使用命令行工具签入,它不会起作用。
这如何回答这个问题?
A
Allex Radu

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

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

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

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


谢谢。这也适用于 intellij 2020.3!
H
Hulk1991

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

Ctrl + Alt + O 是优化导入

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

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


在 Mac 上用 Cmd 替换 Ctrl
在 Linux 上要小心,因为 Ctrl + Alt + L 通常是锁定会话。您需要重新映射其中一个功能。
Ctrl-Alt-L 键可以在 Ubuntu 中解除绑定。 stackoverflow.com/q/24908490/53897
T
ThinkDigital

https://i.stack.imgur.com/HjuGD.png


i
izogfif

麾!在 IDEA 2021.2 中最后有“文件->设置->工具->保存操作”,您可以在其中选择“重新格式化代码”、“优化导入”、“重新排列代码”、“运行代码清理”、“运行 eslint --fix" 等。


s
stites

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

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


H
H. Pauwelyn

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

https://i.stack.imgur.com/f1nSf.png

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


我说了什么here
请注意,过度宣传一种资源可能会被社区解释为垃圾邮件。你应该发布好的、相关的答案,如果一两个碰巧提到这门课程,那很好 - 但如果你在每个答案中都发布它,它会被标记和删除。
a
amcp

对于 PyCharm/IntelliJ IDEA:

安装黑色。

$ pip install black

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

在 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

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

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

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

单击 + 图标以添加具有以下值的新外部工具:

Name: Black
Description: Black is the uncompromising Python code formatter.
Program: <install_location_from_step_2>
Arguments: "$FilePath$"

通过选择工具 -> 外部工具 -> 黑色来格式化当前打开的文件。

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

(可选)在每个文件保存时运行 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


P
PanCrit

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


J
Julien Malige

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

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

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


Prettier 很棒,但它不适用于网络之外的语言/格式。它将格式化 js、ts、css、json 等,但对 C、C#、Java、Python 等无用 - 除了一些早期的插件尝试。
K
Kim Kern

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

https://i.stack.imgur.com/Hhx58.png


IntelliJ 不仅适用于 JavaScript 项目,因此这不是答案
@Farid IntelliJ 确实支持 JavaScript 项目,所以这个答案显然对其他人有帮助。该问题并不要求提供涵盖所有可能情况的解决方案,也没有说明特定的情况/语言。