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.Map
和 javax.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 Imports
和Auto Import
,请转到:
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 IntelliJ IDEA 自动导入包 快捷方式 关闭重复代码提示
IntelliJ 14 - 创建/导入 Scala / SBT 项目