Intellij重新格式化文件保存

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

242217 次浏览

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

我把它设置为签到时自动清理,这对我来说通常已经足够好了。如果有些东西太难看,我只会点击快捷键(Ctrl-Alt-l返回)。我看到他们有一个自动格式化粘贴代码的选项,尽管我从来没用过。

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

Ctrl + Alt + O是优化导入

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

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

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

  1. 制作一个宏(我使用了组织导入,格式化代码,保存全部)
  2. 给它分配一个击键(我重写了Ctrl+年代)

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

IntelliJ 10.0的步骤:

  1. Code ->“优化导入…”,如果出现对话框,勾选“不再显示此消息”,然后单击“运行”。
  2. 工具->“开始宏录制”
  3. 代码->“优化导入…”
  4. 代码-> "重新格式化代码…"
  5. 文件-> "保存全部"
  6. 工具->“停止宏录制”
  7. 命名宏(类似于“格式化保存”)
  8. 在File -> Settings -> Keymap中,选择位于"Main Menu -> Tools -> " formatting save"的宏
  9. 点击“添加键盘快捷键”,然后执行你想要的击键。如果你像我一样选择Ctrl+年代,它会问你如何处理前面的Ctrl+年代快捷方式。删除它。如果你愿意,你可以随时重新分配它。
  10. 享受吧!

对于IntelliJ 11,请替换

< p >步骤2。编辑->宏->“开始宏录制”
步骤6。with: Edit ->宏->“停止宏录制”

其他一切都保持不变。

IntelliJ 12

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

Intellij / Preferences / Keymap / Macros

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

乍听起来可能有些疯狂,但IntelliJ似乎节省了几乎每一个操作:运行测试、构建项目,甚至关闭编辑器选项卡。我有一个习惯,经常点击Ctrl-年代,所以这实际上很适合我。在重新格式化时,输入它当然比默认绑定更容易。

以下是尼尔的最新回答。

IntelliJ 13

  1. Code ->重新格式化代码 enter image description here
  2. Edit ->宏->开始宏录制
  3. Code ->重新格式化代码
  4. File ->保存全部
  5. Edit ->宏->停止宏录制
  6. 命名宏(类似于“格式化保存”)
  7. File -> Settings -> Keymap
  8. 右键单击宏。添加键盘快捷键。将键盘快捷键设置为Control + S。 enter image description here
  9. IntelliJ将通知您热键冲突。选择“remove”可删除其他赋值。

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

可以很好地与Eclipse格式化插件结合使用。

搜索并激活插件:

enter image description here

配置:

enter image description here

编辑:它似乎是最近版本的Intellij保存动作插件是由自动Intellij保存触发的。这可能是相当恼人的,当它仍然在编辑。

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

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

我实际上试图将reformat分配给Ctrl+年代,它工作得很好-现在自动完成保存。

intellij14 &&15:当你在提交更改对话框签入代码时,勾选“重新格式化代码”复选框,IntelliJ将重新格式化你签入的所有代码。

 ></a></p>


<p><sup>来源:<a href=www.udemy.com/intellij-idea-secrets-double-your-coding-speed-in-2-hours

如果您正在Flutter中开发,在5/1/2018有一个新的实验性选项,允许您在保存时格式化代码。Settings

如果是关于“更漂亮”,那就使用File Watcher:

引用=>工具=>文件观察者=>单击+添加一个新的观察者=>更漂亮

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

如果你有InteliJ Idea Community 2018.2及以上版本,步骤如下:

  1. 在顶部菜单中单击:Edit >宏比;开始宏录音 (你会在屏幕右下角看到一个确认窗口 宏正在被记录)
  2. 在顶部菜单中单击:Code > 重新格式化代码(您将在下方看到该选项被选中 李右角落)< / >
  3. 在顶部菜单中单击:Code >优化进口 (你会看到选项在右下角被选中)
  4. 在顶部菜单中单击:文件>保存所有
  5. 在顶部菜单中单击:编辑>宏比;停止宏录制
  6. 将宏命名为:“格式化代码”、“组织导入”、“保存”;
  7. 在顶部菜单中您可以计时:文件>设置。在设置窗口单击Keymap
  8. 在右边的搜索框中搜索“保存”。你会找到Save All (Ctrl+S)。右键单击它并选择“删除Ctrl+S"
  9. 从方框中删除搜索文本,按下全部折叠按钮(左上角第二个按钮)
  10. 转到宏,按箭头展开你的宏,找到你保存的宏,右键单击它。选择添加键盘快捷键,按Ctrl+S, ok。

重新启动IDE并尝试它。

我知道你要说什么,在我之前的人也写过同样的东西。但我在使用本文上面的步骤时感到困惑,我想为拥有最新版本IDE的人编写一个简化版本。

从版本2020.1开始,你可以直接在更漂亮插件的首选项中激活运行save for files:

Preferences for Prettier plugin .

对于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: File ->设置→工具→外部工具

  1. 点击+图标添加一个新的外部工具,值如下:
Name: Black
Description: Black is the uncompromising Python code formatter.
Program: <install_location_from_step_2>
Arguments: "$FilePath$"
  1. 通过选择Tools ->外部工具->黑色的。

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

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

确保你已经安装了File Watchers插件。

转到首选项或设置->工具→File Watchers和点击+添加一个新的watcher:

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文件,我遵循了以下指南,其中也使用了文件监视器: https://black.readthedocs.io/en/stable/editor_integration.html < / p >

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