在Eclipse中预先输入自动完成功能

时间:2010-01-02 10:34:31

标签: visual-studio visual-studio-2008 eclipse

Eclipse是否有像Visual Studio一样的自动填充类型的插件,所以我不必一直按 Ctrl + Space 来破坏我的空格键? (如果您不知道它在Visual Studio中是如何工作的,请不要打扰回答。)

而且,我是否可以将自动完成限制为导入的包,而不是地球上的每个Java类?当我和GWT合作时,看到来自awt和swing等的建议很令人沮丧。而且我不想将每个Java类添加到过滤器中,这只是愚蠢的。 (再次,就像在Visual Studio中完成它一样!)

4 个答案:

答案 0 :(得分:24)

关于你的第二部分,yes you can

  
      
  • 打开Eclipse
  •   
  • 从菜单中选择窗口/首选项
  •   
  • 从左侧菜单中展开Java /外观/类型过滤器
  •   
  • 点击“添加包”按钮,输入“java.awt”(不带引号),然后点击OK
  •   
  • 确定你的出路
  •   
     

这将使Eclipse从您的类型提前列表中删除java.awt包中的所有匹配类。非常好......

所以Eclipse中存在“预先输入”(在此status report in June 2006中提到),但它是自动完成的同义词,通常由 CTRL + Space ...(这不是你想要的)


更具体地说,您在Visual Studio 中有automatic auto-completion(在键入时完成,带有“Common”或“All”可能的完成列表)的类型在Eclipse中不存在(实际上如下):

alt text

原始答案2010年1月:

  

至少,不是没有专门的插件   即使使用该插件,它也必须遵循TemplateCompletionProcessor,这意味着它需要一个字符列表来触发所述完成(再次,不是您正在寻找的),通过重新定义方法getCompletionProposalAutoActivationCharacters()

2011年11月更新:

Cristihis answer(upvoted)中提到了一个很好的解决方法,其中包括将所有字母添加为java的自动激活触发器。
另请参阅“Automatically opening completion window in Eclipse”。

从帖子“Eclipse auto-completion ”:

Windows -> Preferences -> Java -> Editor -> Content Assist
  
      
  • 将延迟设置为:0(实际上> 0更好:50,因为不断收听而避免CPU选择)
  •   
  • 将触发器设置为:
  •   
    .(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV WXYZ@

content assist options

答案 1 :(得分:14)

我的回答可能来得太晚,但也许可以帮助其他人在日食中搜索此功能。 这个解决方法适用于我(eclipse helios):

转到Windows -> Preferences -> Java -> Editor -> Content Assist。 在这里,启用自动激活并将自动激活延迟设置为较低的值,比方说50 ms。 然后是解决方法:在java的自动激活触发器中,只需输入所有字符:abcdefghijklmnopqrstuvwxyz

然后你去,只需输入一些东西。

答案 2 :(得分:1)

按下“。”时会触发完成,如果这是您所说的“预先输入类型自动完成”。这也是Visual Studio的功能,除非您指的是我不知道的另一个Visual Studio功能。

将完成限制为仅导入的软件包我认为这是一个有点不正统的事情;您不得不依赖通配符导入来定义要完成的类型集。我认为大多数用户会认为这不是很有用。不过,欢迎您详细说明您的用例。例如,为什么要从完成中排除所有Java类?

顺便说一句,使用“类型过滤器”(如VonC建议的那样)不需要您添加每个类。我通常(全局)排除java.awt.*sun.com.*org.omd.*和其他一些内容。 Eclipse还根据(类型敏感)启发式排序完成,这通常会导致最相关的类型显示在顶部。例如,方法调用内的自动完成将把与方法类型签名匹配的变量放在顶部。

答案 3 :(得分:0)

我知道Claus在他的问题的第二部分谈到了Java,但是一般的问题是关于Eclipse中的任何语言(这里没有Java标记),所以以下内容可能对 python eclipse编码员:

转到Windows -> Preferences -> PyDev -> Editor -> Code Completion。在这里,选中“请求完成所有字母字符和'_'?”旁边的框。

(有点类似于克里斯蒂的回答。)