更改自动完成选择的热键

12

在Eclipse中,我发现按Enter键选择内容辅助/自动完成列表中的项目非常烦人。特别是在PyDev中,因为没有行末分号,按Enter键会将自动完成列表中选定的内容输入到新行中。

Tab键是更好的选择热键,因为我不太可能在一行中想要一个制表符。

有没有可能在Eclipse中更改这个设置呢?

我正在使用CDT、PDT和PyDev,但对与Eclipse相关的任何解决方案都很感兴趣。

4个回答

4
所有Eclipse中的按键绑定都在“窗口 -> 首选项 -> 通用 -> 键”中定义。我认为您无法更改用于从自动完成列表中选择内容的内容,但是您可以使用空格进行选择,然后使用Enter进行新行。

你的意思是用空格来取消选择,然后按回车键换行,对吗?那么每行末尾都会多出一个空格。我想Esc然后Enter也是一种选择,但这真的很麻烦,不太值得。 - ack
只需搜索“ALT + /”或“单词完成” - 您可以更改它,但更改为“Tab”需要更多手动操作,并使选项卡在编辑器中无法正常工作... - BrainSlugs83

1

自动补全选择键是编辑器特定的。例如,在 Aptana Studio 中,您可以定义一组键用于建议选择。请参见例如 Preferences/Aptana Studio/Editors/JavaScript。由于 PyDev 与 Aptana Studio 共享一些代码,因此具有类似的功能。请参见“Preferences/PyDev/Editor/Code Completion/Apply completion on *”复选框。

说到 Tab 键作为选择器,似乎无法在没有额外编码的情况下实现,因为它对于聚焦到建议窗口具有特殊含义。对于那些感兴趣的人,可以在 org.eclipse.jface.text.contentassist.CompletionProposalPopup.verifyKey(VerifyEvent) 找到 Tab 处理。

祝好,Max


1

很遗憾,在PyDev(或Eclipse本身)中无法使用Tab键代替Enter键进行自动完成。

因此,在这种情况下,我会使用Shift-Enter键换行:请注意,在这种情况下,您可以从行中的任何位置按Shift+Enter键,它将模拟“到达行尾,按Enter键”的操作(对我来说非常方便)。

实现说明:正如Max所指出的那样,'\t'和'\r,' \n'的情况实际上是在Eclipse中硬编码的:org.eclipse.jface.text.contentassist.CompletionProposalPopup.verifyKey(VerifyEvent),因此,要解决这个问题,您需要一个补丁来更改Eclipse本身的代码(如果您认为这很有价值,请在Eclipse中创建一个错误请求以请求该功能)。


0
如果您使用的是Mac电脑,可以下载Better Touch Tool(BTT)并将热键更改为“tab”键。我刚试过了,它可以正常工作,但是如果这样做,您就无法使用“tab”键在文本中进行缩进。所以我将其更改为shift+space。
在BTT中,在Trackpads和Apple remote之间的菜单中选择Keybord。在左侧的加号上添加eclipse。然后按下+Add new shortcut。在键盘快捷键中按下您想要的热键或组合键。在Trigger Other keyboard Shortkey中按下ctrl+space,完成!只需确保右下角启用了新的快捷方式即可。

http://www.bettertouchtool.net/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接