如何在IntelliJ中让格式化程序包装代码?

172

我无法在IntelliJ中格式化我的代码。

我可以看到边缘线(默认为120列),但似乎从菜单激活:

Code -> Reformat Code

只是忽略了这个边缘。

7个回答

204

IntelliJ IDEA 14, 15, 2016 & 2017

格式化现有代码

  1. 确保不超出右边界

    文件 > 设置 > 编辑器 > 代码样式 > Java > 换行和括号 > 确保不超出右边界

    File Settings Ensure right margin

  2. 重新格式化代码

    代码 > 重新格式化代码...

    Reformat code

    或按下 Ctrl + Alt + L

    warning 如果您遇到这样的情况:

    thisLineIsVeryLongAndWillBeChanged();   // comment
    

    它将被转换为

    thisLineIsVeryLongAndWillBeChanged();   
    // comment  
    

    取代

    // comment  
    thisLineIsVeryLongAndWillBeChanged();   
    

    如果代码看起来像上面的例子,我会在重新格式化之前选择代码片段。

  3. 当打字达到右边缘时换行

    • IntelliJ IDEA 14: 文件 > 设置 > 编辑器 > 代码样式 > 当打字达到右边缘时换行

      Wrap when typing

    • IntelliJ IDEA 15, 2016 & 2017: 文件 > 设置 > 编辑器 > 代码样式 > 打字时换行

      Wrap on typing


6
是的!这才是正确的答案,非常感谢!问题在于“当输入到右边界时换行”选项一旦你更改已经被换行的行中的内容,会出现很大的麻烦。你的答案只是在调用时清理。结合“保存并格式化”宏,这就完美了! - avalancha
1
我想在这里添加一个关键词,这可能是人们正在寻找的:这就是所谓的硬换行(与软换行相对应--在此处查看区别)。 - iled
1
另外:2018.1没有指导。 - 8bitjunkie
格式化代码是由程序自动完成的步骤。 - Mote Zart
2023年仍然是有效的解决方案 :P - havryliuk

103

您的意思是格式化程序不会断开长行吗? 那请检查:

设置 / 项目设置 / 代码样式 / 换行

更新: 在较新的 IntelliJ 版本中,该选项可在以下位置找到:

设置 / 编辑器 / 代码样式

在此选择 当输入到右边距时换行


1
这个选项已经不再存在了,使用的是13.0.2版本,问题仍然存在。 - ipolevoy
44
选项名称是“确保不超出右边界”。 - madhead
14
“确保不超出右边界”选项位于 文件/设置/编辑器/代码样式/Java/换行和括号/重新格式化时保留。 - RavenMan
3
这些人总是不停地更改设置键的名称。 - ACV
这是正确的,但在新版本中,添加了额外的选项以提供更精细的控制,以确定可以包装什么。请参见 https://dev59.com/em865IYBdhLWcg3wZNrT#52157389 获取正确的当前答案。 - ipetrik

23
在Intellij IDEA 2018.2中,启用“确保不超出右边界”对我无效。我已找到解决方法,我们需要将下面的每个元素从“不换行”更改为“如果太长则换行”。

enter image description here enter image description here

之后,我们可以通过查看右侧面板来预览将要更改的包装类型。如果满意,点击“OK”或“应用”以应用更改。最后,在Windows中使用CTRL+ALT+L,在MacOS中使用Command+Shift+L来获得手动格式。


这也是我的问题。如果该复选框被设置,但其余部分保持默认状态,则IntelliJ尝试换行,但由于一切都设置为“不换行”,因此无法实现。 - Robber
现在对我来说正常运作,已经是2023年了 :D - havryliuk

12

Or you can use the shortcut:

Ctrl + Alt + L


4
请问您能否将这个操作的名称发布出来(在设置中找到“按键映射”)?在大多数Linux系统上,CTRL+ALT+L组合键被用于锁定计算机。我甚至无法使用“通过快捷方式查找操作”的功能。 - tomrozb
2
@tomrozb 这个快捷方式是用于代码 -> 重新格式化代码。 - AtomHeartFather
1
那会锁定我的屏幕。 - 8bitjunkie
在Mac上,只有这个方法有效(Cmd + Option + L),并没有勾选Code Style中的复选框有用。 - jok

7

为了在IntelliJ IDEA 2020.1 community中包装代码编辑器中的文本,请按照以下步骤操作:

Ctrl + Shift + "A" OR Help -> Find Action
Enter: "wrap" into the text box
Toggle: View | Active Editor Soft-Wrap "ON"

enter image description here


4
在最新的IntelliJ版本2020中,我们有一个名为“soft-wrap these files”的选项:
设置>编辑器>常规>软包装这些文件。
勾选此选项并添加您希望应用换行的文件类型。

soft wrap intellij option

在JetBrains的IDE支持论坛上有一个相关问题:如何缩进代码


这不是与Noah G.通过快捷键__查找操作__(CRTL + SHIFT + A)视图|激活编辑器软换行"ON"所提出的相同吗? - hc_dev
似乎它们在早期版本中已经存在:2019.1.3及之前的版本。 - hc_dev

3
您可以为Ctrl + Shift + S(例如)创建一个宏,该宏可以执行以下所有操作:

编辑 > 宏 > 开始录制宏(录制将开始)。单击需要的位置。

例如:

Code > Reformat Code
Code > Auto-Indent Lines
Code > Optimize Imports
Code > Rearrange Code
File > Save All
... (all that you want)

然后,点击 IDE 底部右侧的红色按钮停止宏录制。

设置宏名称。

转到 文件 > 设置 > 宏 > 你的宏名称

右键单击 > 添加键盘快捷键,并输入 Ctrl + Shift + S。


这是一项基本的IDE功能。宏对于如此简单的事情来说过于繁琐和复杂。 - 8bitjunkie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接