停止空格键按键触发 Eclipse 中的自动完成

2022-08-31 11:19:14

更新

这在Eclipse 2018-12中得到了修复。此行为仍然是默认行为,但可以配置为关闭 - 有关如何查看接受的答案

我将把这个问题留给后代,以及早期版本的Eclipse。


在 Eclipse 中,我为 Java 启用了智能感知式建议,方法是转到

Window -> Preferences -> Java/Editor/Content Assist

并设置以下内容

Auto activation delay (ms) -> 0
Auto activation triggers for Java -> .(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

source = Eclipse Intellisense?

除了一个令人讨厌的问题外,这非常有效。当我点击时,正在键入的令牌会自动使用建议列表顶部的任何内容完成。很公平,除了有时我会键入具有完全合法匹配的类/变量名称,但这不会显示为最佳建议。因此,当我自然地点击Eclipse时,插入了一些完全错误的东西。spacebarspacebar

例如键入后,我会点击并得到.CookiespacebarCookieMonster

这似乎是一个错误,并且经常发生到令人讨厌的程度,但即使如此,我也不希望空格键触发自动完成。我可能想键入一个尚未声明的变量名称或类似名称。我想使用自动完成作为辅助工具,但我的自然键入应该始终优先于它。

我想停止触发自动完成,要么回退到使用,要么最好还是使用普通键入中未使用的键触发自动完成。这有可能吗?spacebarentercustom

我已经尝试了内容助手中的所有设置,但无济于事。谷歌搜索问题只会返回一堆关于禁用自动完成功能的结果。


此问题已从 Eclipse 2018-12 [4.10] 修复,请参阅接受的答案

它存在于所有以前的版本中,即2018-09 [4.9],光子[4.8],[4.7],[4.6]等。


答案 1

Eclipse 2018-12 已经为此打了补丁!

Bug 348857的补丁最近被合并到Eclipse项目中,并作为Eclipse 2018-12的一部分发布。您可以在此处下载该版本。

现在,您有了一个新选项来禁用 除 之外的所有插入触发器,这将防止导致自动完成。enterspacebar

只需转到首选项... -> Java ->编辑器 ->内容助手(或 Window -> 首选项 -> Java -> 编辑器 -> Windows 上的内容助手),然后选择禁用插入触发器,但“Enter”除外,如下面的屏幕截图所示:Disable insertion triggers preferences


答案 2

问题跟踪器上有一个解决方案。将 jar 复制到 eclipse/dropins 文件夹中。随着下一次重新启动,空间被作为自动完成触发器。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=348857

Eclipse 12-2018 及更高版本:这是本机工作,检查Pyves的答案。


推荐