IntelliJ 组织导入

Posted

技术标签:

【中文标题】IntelliJ 组织导入【英文标题】:IntelliJ Organize Imports 【发布时间】:2012-01-26 09:07:09 【问题描述】:

IntelliJ 是否具有类似于 Eclipse 中的 Organize Imports 功能? 我所拥有的是一个 Java 文件,其中有多个类缺少它们的导入。示例:

package com.test;
public class Foo 
    public Map map;
    public JTable table;

在 Eclipse 中,我可以使用 Organize Imports,它会自动导入 java.util.Mapjavax.swing.JTable。在 IntelliJ 中,我必须单独前往每个班级,选择它,然后按 Alt-Enter。有一个优化导入功能,但它似乎只是对现有导入进行排序和扩展。

我正在使用 IntelliJ 10.5。

【问题讨论】:

我仍然找不到替代 Eclipse 的 Ctrl+Shift+O 你试过 Ctrl + Alt + O 吗?它会自动添加任何唯一的导入,并提示您按 Alt + Enter 在相似的导入之间进行选择。仅供参考,我使用的是 IntelliJ 12。 除了 Ctrl + Alt + O 不会返回它无法决定的导入......例如,如果有多个导入可供选择(我试图弄清楚如何选择它们,因为我的键盘上没有它们建议的字符符号),然后它会说,“未找到未使用的导入”。 【参考方案1】:

"Settings -> Editor -> General -> Auto Import" 下有几个关于自动导入的选项。只能自动添加明确的导入;这是选项之一。

【讨论】:

这个答案没有足够的赞成票。是的,@ryan-stewart 的回答完全回答了 OP 的问题,但这个答案提供了 OP 没有问的问题的解决方案:我如何永远解决这个问题,而不仅仅是一次如何解决它。 现在是Setting > Editor -> General > Auto Import 我修复了在classes上添加检查 它在包/文件夹/项目级别上不起作用,是吗?我在项目、src、java 上做了一个 'ctrl + alt + o' 并做了 mvn clean 测试......我仍然得到最近重构的'symbol not found'。 @old-monk 它适用于编辑所知道的;更有可能是重构中的某些东西被破坏了,但不可能说。【参考方案2】:

Ctrl + Alt + O代码 → 优化导入...)在 Windows/Linux 和 macOS 键盘映射上寻找。

它说“优化”,但是,如果配置为这样做,它也会:

组织现有的导入 删除不需要的导入 添加新的必需导入 即时添加明确的导入

您可以在“设置 → 编辑器 → 常规 → 自动导入”as described by Dave 下调整 自动导入 设置。

您还可以在“设置 → 编辑器 → 代码样式 → Java → 导入”下修改导入的自动排序方式

【讨论】:

我不断收到短暂的反对票,可能是因为混乱。我已经更新了我的答案以解释这确实如何满足原始问题。 当依赖项中的包名称发生更改时,它不起作用。即使它仍然是明确的,我也必须为每个受影响的类单击 ClassName 按 Alt+Enter 和 Enter... 在 Mac 上也是 CTRL + ALT + O(至少在 android Studio 1.0 中) 我发现默认情况下不选中“动态添加明确导入”选项非常愚蠢。谁更喜欢自己一个人做这个,一个班一个班? 应该是Settings → Editor → General → Auto Import【参考方案3】:

除了@dave-newton 和@ryan-stewart 在早期答案中指出的Optimize ImportsAuto Import,请转到:

想法 File menu > Settings > Code Style > Java > Imports IDEA >= 14:File menu > Settings > Editor > Code Style > Java > Imports(感谢@mathias-bader 的提示!)

您可以在那里微调分组和顺序或导入,“Class count to use import with '*'”等。

注意: 从 IDEA 13 开始,您可以从 IDEA“起始页”配置项目默认设置:Configure > Project defaults > Settings > ...。然后每个新项目都将具有这些默认设置:

【讨论】:

从 IntelliJ IDEA 14 开始,这个可以在Settings > Editor > Code Style > Java > Imports下找到 @mathias-bader 感谢您指出“设置”页面更改 感谢屏幕截图!爱它。视觉价值 1,000 字!【参考方案4】:

如果您只缺少一个导入(类名有红色下划线),单击并将鼠标悬停在它上面,会出现一条蓝色的建议导入语句。如果此时按 Alt + Enter,导入将包含在文件中,红色下划线应消失。

【讨论】:

很确定这是一个多平台功能【参考方案5】:

导航到您要组织导入的文件,或者只需单击整个,甚至单击项目,然后按CTRL + ALT + O

【讨论】:

This answer already exists。您可以考虑添加额外信息(“您可以单击整个包,甚至单击项目而不是按 CTRL + ALT + O”)作为对该答案的评论【参考方案6】:

只需将鼠标移到缺少的视图上,然后在 Windows 上按键 ALT + ENTER

【讨论】:

【参考方案7】:

ALT+ENTER 远不是 eclipse 的习惯,在 IDEA 对我来说鼠标悬停不起作用,所以在setting>IDESetting>Keymap>Show intention actions and quick-fixes 我把它改成了鼠标左键,它不支持鼠标悬停!但是鼠标左键单击没问题,并且最接近我的意图。

【讨论】:

【参考方案8】:

Mac 快捷键:(ctrl + opt + o)

【讨论】:

不,它的控制+选项+o 实际上这个答案与这个问题中投票最多的答案相同。【参考方案9】:

该插件将在文件保存时自动执行“组织导入”操作:https://github.com/dubreuia/intellij-plugin-save-actions。

要安装:“文件>设置>插件>浏览存储库...>搜索'保存操作'>类别'代码工具'”。然后激活“组织导入”保存动作。

【讨论】:

根据一个(缺失的)功能判断工具可能不被视为深思熟虑的判断。如果插件不起作用,请随时在此处填写错误:github.com/dubreuia/intellij-plugin-save-actions/issues。 你是对的,在正常情况下这不是一个深思熟虑的判断。然而,对于终极工具中一个令人震惊的缺失基本功能,它是一种发泄的挫败感。我花了 2 个小时痛苦地试图让这个简单、重要的功能发挥作用,但没有成功。更糟糕的是,它不是默认的内置功能(就像 Eclipse 做得多么优雅),真正需要编写一个插件来实现这一点!这就像建造最先进和最复杂的大型喷气式飞机,但没有空调,而是给每位乘客一个纸扇!我在 Eclipse 中花了 1 秒。 其实使用这个插件突出了IntelliJ的一个问题和弱点。我不得不禁用这个插件,因为它会在每次自动保存时劫持 IntelliJ,使其无法使用且速度缓慢。这是因为它会尝试在我每次输入内容时执行所有保存操作。如果能以某种方式关闭自动保存,那么这个插件确实非常有用。【参考方案10】:

2015 年 7 月 - 我得出结论,IntelliJ 不支持使用单个函数自动解析导入。 “组织导入”只是删除未使用的导入,它不会解析未导入的类型。 Control-Space 解析单个未导入的类型。不存在解决所有类型导入的单一操作。

【讨论】:

这是我的经验。令人沮丧。 这也把我绊倒了。请参阅下面的@rohit 解决方案。文件 -> 设置 -> 编辑器 -> 常规 -> 自动导入 -> Java 并检查他突出显示的所有三个选项。这对我有用。 奇怪的是,这是公认的答案,因为它非常不准确。见***.com/a/8609200/839646。 @RyanStewart 它不能像 Eclipse 那样解决模棱两可的导入。有歧义时Eclipse会提示,IntelliJ直接忽略。 我很沮丧,但是,@Ryan 是正确的。 CTRL ALT O ,可以添加缺少的导入。但是您必须在设置>编辑器->常规>自动导入中对其进行配置,并选中“即时添加明确的导入”然后解析类中的所有导入。【参考方案11】:

简单而简短的解决方案对我有用。

转到File -> Settings -> Editor -> Auto Import -> Java(左面板)并进行以下操作: 选中“Add unambigious imports on the fly”和“Optimize imports on the fly”复选框

参考这个。

【讨论】:

它在包/文件夹/项目级别上不起作用,是吗?我在项目、src、java 上做了一个 'ctrl + alt + o' 并做了 mvn clean 测试......我仍然得到最近重构的'symbol not found'。【参考方案12】:

在 IntelliJ 14 中,自动导入设置的路径已更改。路径是

IntelliJ IDEA->首选项->编辑器->常规->自动导入

然后按照上面的说明,点击 动态添加明确的导入

我无法想象为什么默认情况下不设置它。

【讨论】:

【参考方案13】:

我终于针对这个令人沮丧的问题创建了一个解决方法。我对解决方法并不完全满意,但总比没有好。

基本上,在您粘贴源代码并修复明确的导入后,只需按F2 即可突出显示下一个编译器错误。如果当前错误是导入缺失错误,请按Alt+Enter,然后按Enter 选择Import 选项,然后选择正确的导入。然后,再次按F2

【讨论】:

【参考方案14】:

转到帮助 -> 查找操作(快捷键是 Cntl + Shift + A)并输入优化导入(快捷键是 Cntl + Alt + O)

【讨论】:

【参考方案15】:

MacOS 上 Android Studio 的快捷键:Control + Option + O

【讨论】:

【参考方案16】:

[对于如何在 IntelliJ idea 中优化导入的快速提示,这可能仍然是一个有用的链接] https://youtu.be/14odF-8X76o

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于IntelliJ 组织导入的主要内容,如果未能解决你的问题,请参考以下文章

intellij idea 怎么导入jar

IntelliJ IntelliJ IDEA 自动导入包 快捷方式 关闭重复代码提示

IntelliJ 14 - 创建/导入 Scala / SBT 项目

intellij idea 导入gradle项目卡在 gradle: build model...

Intellij 无法导入 SBT 项目

导入时 IntelliJ 不应该导入 * [重复]