像在 Eclipse 中那样自动导入 IntelliJ IDEA 中的类的任何方式(或快捷方式)?

Posted

技术标签:

【中文标题】像在 Eclipse 中那样自动导入 IntelliJ IDEA 中的类的任何方式(或快捷方式)?【英文标题】:Any way (or shortcut) to auto import the classes in IntelliJ IDEA like in Eclipse? 【发布时间】:2015-09-21 14:13:22 【问题描述】:

在 Eclipse 中,在使用 Java 编码时,按 Ctrl + Shift + O 会自动导入所有类。 在 NetBeans 中,这是通过 Ctrl + Shift + I 完成的。

在 IntelliJ IDEA 中有什么方法可以做到这一点吗?

我在 google、***、IntelliJ IDEA 配置和 IntelliJ 官方网站Keyboard Shortcuts You Cannot Miss 中搜索了等效快捷方式

【问题讨论】:

IntelliJ Idea 12: How do i auto import namespaces?的可能重复 查找命令/键盘快捷键时,键入 Ctrl-shift-A(或 Mac 上的 Cmd-shift-A),然后搜索命令。例如在这里,输入“imports”将显示命令“Optimize imports”及其键盘快捷键。 “优化导入”不起作用添加类 如果您在“设置 > 编辑器 > 常规 > 自动导入”下启用类的自动导入功能。 这确实是intellij最大的失败。这是一种痛苦。在导入时发生冲突和合并是愚蠢的,但 intellij 无法轻松帮助您解决它 【参考方案1】:

IntelliJ IDEA 没有添加导入的操作。相反,它具有执行您键入的操作的能力。如果您在 Settings > Editor > General > Auto Import 中启用“即时添加明确导入”,IntelliJ IDEA 将在您键入时添加它们,而无需任何快捷方式。您还可以添加要从自动导入中排除的类和包,以使您大量使用的类与其他同名的类发生冲突,明确无误。

对于不明确的类(或者您是否更喜欢关闭“动态添加明确的导入”选项),只需键入类的名称(只需名称即可,无需完全限定)。使用代码完成并选择您想要的特定类:

注意右侧的完全限定名称。当我选择我想要的并回车时,IDEA 会自动添加导入语句。如果我输入构造函数的名称,这也是一样的。对于静态方法,您甚至可以继续键入您想要的方法。在以下屏幕截图中,尚未导入“StringUtils”类。

或者,输入类名,然后按 Alt+Enter+Enter到“显示意图操作和快速修复”,然后选择导入选项。

虽然我从未使用过它,但我认为Eclipse Code Formatter 第三方插件可以满足您的需求。它将“模拟 Eclipse 的导入优化”列为一项功能。有关更多信息,请参阅其instructions。但最后,我怀疑一旦你习惯了他们的范例,你会发现内置的 IDEA 功能可以正常工作。一般来说,IDEA 使用“按意图开发”的概念。因此,与其中断我的开发工作来添加导入语句,我只需键入我想要的类(我的意图),IDEA 会自动为我添加该类的导入语句。

【讨论】:

在编辑旧文件时,这种方式的工作量要大得多。 这对我不起作用。当我在选择出现在自动完成列表中的类后按 Enter 时,IntelliJ 不会导入它。相反,它写入类的完全限定名称。这是非常烦人和无用的。你知道如何解决这个问题吗? ^ 这种行为的原因是我试图导入的类不在构建路径中。添加后,按 Enter 正确导入了类。 我来这个问题是希望找到 IntelliJ 的任何此类快捷键。问题是,如果我注释大部分具有类的代码,IntelliJ 会自动删除命名空间导入。现在,如果我取消注释代码,IntelliJ 不会重新导入相同的命名空间,并且继续为每个命名空间执行 ALT+Enter 会变得非常令人头疼。有什么解决办法吗? 我同意@RahulSaini 的观点。没有理由为单个活动设置两个单独的键映射。我不想也不应该做多件事来完成一个动作。我想说的是,在这一点上,intellij 只是对它好战,没有真正的理由不“组织”进口而不是“优化”进口。我真的很想否决这个答案,即使它在技术上是正确的。【参考方案2】:

不是一下子。但是你可以按

Alt + Enter

人们认为它仅在您处于特定项目时才有效。但它实际上适用于“下一个缺失的类型”。所以如果你一直按Alt + Enter,IDEA会一个接一个地修复,直到全部修复为止。

【讨论】:

我假设您指的是键盘键符号。这些可以使用kbd 标签<kbd>Alt</kbd> + <kbd>Enter</kbd> 添加 转到它找不到的类,然后按 ⌥+ Enter。很高兴我向下滚动。 有没有办法将Alt+Enter 重新映射为更适合手指的组合?我无法通过IntelliJ IDEA > Preferences > Keymap 菜单弄清楚。 我发现 Eclipse 缺少导入语句添加的方式比 IDEA 更容易。在输入 Alt + Enter 之前,我总是很困惑将鼠标光标放在哪里 Alt+Enter 结合 F2(下一个突出显示的错误)通常非常快,即使对于(太大)类。【参考方案3】:

我认为最好的解决方案是更改“优化导入”设置,尽管与 Eclipse/Netbeans 不完全相同。

Preferences > Editor > General > Auto Import

设置Add unambiguous imports on the fly

编辑:使用这种方法,当有不明确的导入时,IntelliJ 会通知你,然后你可以使用 Alt + Enter answer by Wuaner中概述的方法

我发现,几乎总是最合适的 Import 位于列表顶部。

【讨论】:

@Raja 我也不知道为什么。我确实知道,当我告诉我的同事时,他们选择不使用这种方法……但很神秘。 说明很清楚。它只会自动导入 unambiguous 类。自从过去两天以来,我一直在我的 3000 多个课程项目中使用它。奇迹般有效。感谢分享。【参考方案4】:

好像IntelliJ IDEA会自动导入错过的课程,你可以手动点击Alt + Enter来导入。

【讨论】:

【参考方案5】:

不能一次全部导入,但可以使用以下组合:

ALT + Enter --> 显示意图操作和快速修复。

F2 --> 下一个突出显示的错误。

【讨论】:

【参考方案6】:

另一种选择是使用 eclipse 快捷键让 IDEA 表现得像 eclipse。 您可以通过启用此功能使用所有 eclipse 快捷方式

步骤如下:

1- 打开 IDEA,按 Control + `。将弹出以下选项。

2- 选择键盘映射。您将看到另一个弹出窗口。在那里选择 Eclipse。

如果您在选项中没有看到“Keymap”,请安装“Eclipse Keymap”插件

3- 现在按Ctrl + Shift + O你完成了!

【讨论】:

我试过了。它不会使“组织导入”以 Eclipse 的方式运行。【参考方案7】:

使用 control+option+L 在 Mac 上自动导入包并自动删除未使用的包

【讨论】:

【参考方案8】:

使用 Alt+Enter 导入单个包或使用 Alt+Shift+Enter 自动导入当前文件中所有明确的包。

【讨论】:

【参考方案9】:

将鼠标悬停在需要类的代码上方,然后按

alt + shift + Enter

这将自动导入所需的类。

【讨论】:

【参考方案10】:

在 MacOS 上使用 control+option+O 自动导入包或自动删除未使用的包

【讨论】:

0 零还是欧?两者都不适用于 IDEA CE 2019。

以上是关于像在 Eclipse 中那样自动导入 IntelliJ IDEA 中的类的任何方式(或快捷方式)?的主要内容,如果未能解决你的问题,请参考以下文章

像在 Visual Studio 中一样在 Eclipse 中自动完成

PhoneGap:iOS 7 中的 UIPickerView 不会像在 iOS 6 中那样自动调整字体大小。关于如何在 iOS 7 中实现的任何解决方案?

尝试在 Eclipse 中设置调试配置时未显示项目

如何像在 typescript 中一样导入 js 文件中的模块?

eclipse如何导入多个工程

组织 Eclipse 插件文件的导入