停止在Eclipse中触发自动填充的空格键

在Eclipse Neon中,我已经为Java启用了intellisense风格的build议

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

并设置如下

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

source = Eclipse智能感知?

除了一个恼人的问题之外,这个工作非常出色。 当我点击空格键时 ,被键入的令牌会自动完成,并且在build议列表的顶部。 除了有时我会input一个具有完全合法匹配的类/variables名,但是这不会显示为最高build议。 所以,当我自然地打空间 Eclipse插入一些完全错误的东西。

EG键入Cookie我会打空格键,并得到CookieMonster

这看起来像一个错误,并经常发生令人讨厌,但即使这样, 我不希望空格键触发一般的自动完成 。 我可能想要input尚未声明的variables名称,或类似的东西。 我想使用自动完成作为辅助工具,但我的自然键入应始终优先于它。

我想停止空格键触发自动完成,并回落到使用input ,或更好地仍然触发自动完成一个自定义的键,在普通的input不使用。 这有可能吗?

我已经在内容辅助中使用了所有的设置,无济于事。 谷歌search的问题只是返回一堆关于禁用自动完成function的结果。

UPDATE

这个问题出现在Eclipse的最后6个版本 – Oxygen [4.7] Neon [4.6] Mars [4.5] Luna [4.4] Kepler [4.3]和Juno [4.2]

在接受的答案和各种评论中讨论的问题跟踪器上的线程似乎表明,这个问题已被确认。

如果任何Eclipse开发者碰巧正在阅读,我只能说,请考虑解决这个问题的好处。

当然,被接受的答案中的插件和链接到bug线程中的其他插件可以解决这个问题。 但是有多less人面对这个问题要么知道,要么就麻烦find并安装它?

自动完成function是您希望在任何现代IDE中以直观和完美的方式工作的function。 这是IntelliJ IDEA的情况下,所以它是目前非常有说服力的理由切换…

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

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

使用eclipse的SDK版本

1.打开插件视图并findorg.eclipse.jface.text,右键单击,select导入为源项目。 导入后,您可以在工作区中find它。

2.在src / org / eclipse / jface / text / contentassist / CompletionProposalPopup.java

 char[] triggers = t.getTriggerCharacter(); if(contains(triggers,key)) 

改成

 if(key!='='&&key!=0x20&&contains(triggers,key)) 

3.导出org.eclipse.jface.text

右键单击org.eclipse.jface.text的项目文件夹,select导出 – >可部署的插件和片段,接下来select目标档案文件,完成。 将eclipse / plugins中的一个replace成你所生成的那个。

即使在Indigo中,空格键也是select自动完成function的关键。 据我所知,这是不能configuration的。 事实上,这可能是延迟存在的原因。

我build议将延迟设置为一些最佳值,使您能够像private void ...舒适地input内容,而不会引发privatevoidbuild议。 那么如果您因为等待时间过长而得到build议,请按Escape中止内容帮助。

与davnicwil相同的configuration,同样的问题,仍然在日食4.4。

解决scheme :在(编辑器窗口)eclipse上截取(挂钩)SHIFT + SPACE(按住),并用ESC,SPACE(序列)代替。 现在你我做出决定

  • 自动完成+空格:当自动提示出现时按SPACE
  • 只是空格:按预定义的组合键或顺序(例如SHIFT +空格键)

在Windows上,您可以使用http://www.heise.de/download/activaid.html (您也可以使用AutoHotkey,Java本地钩子…)

如何与ActivAid:

  1. 打开Ac'tivAid,select“UserHotkeys”
  2. 点击“+”,设置说明
  3. 点击“快捷方式”,按SHIFT +空格键
  4. 命令:“{ESC} {SPACE}”(不含引号)
  5. 点击“+”,selecteclipse编辑框,按ENTER键
  6. 单击确定,在Ac'tivAid中确定

我的configuration文件:activAid / settings / ac'tivAid.ini:[UserHotkeys]

 Hotkey11=+Space Path11=<Send>{ESC}{SPACE} Description11=Eclipse Shift+Space -> Esc,Space Category11= Application11=ahk_class SWT_Window0 

您也可以使用“HotStrings”重新映射非英文键盘上的键,例如ö – > {,ä->}等。

最后解决了。

尝试下载这个org.eclipse.jface.text.jar并将其复制到您的插件文件夹(通常为eclipse /插件)。 不要忘记备份你自己的。

适用于Eclipse Juno。

如果链接不起作用,请对此评论,谢谢。

您可以通过中的checkbox禁用自动激活

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

并根据需要激活自动完成function。 这是默认的热键

CTRL + 空格

在Eclipse中,进入窗口 – >首选项 – >常规 – >键,并删除命令内容辅助的绑定。