停止在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文件夹中。 随着下一次重新启动,空间被自动完成触发。
使用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内容,而不会引发private
和void
build议。 那么如果您因为等待时间过长而得到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:
- 打开Ac'tivAid,select“UserHotkeys”
- 点击“+”,设置说明
- 点击“快捷方式”,按SHIFT +空格键
- 命令:“{ESC} {SPACE}”(不含引号)
- 点击“+”,selecteclipse编辑框,按ENTER键
- 单击确定,在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中,进入窗口 – >首选项 – >常规 – >键,并删除命令内容辅助的绑定。