Java Eclipse自动完成问题

Java Eclipse自动完成问题,java,eclipse,autocomplete,shortcut,Java,Eclipse,Autocomplete,Shortcut,刚刚安装了Eclipse Helios(Win7 64),我遇到了一个奇怪的问题。我输入了syso-Ctrl-Space,它应该是System.out.println(“”)的一部分,但它不起作用!我在网上搜索了大约一个小时,我将“首选项”>“Java”>“编辑器”>“内容辅助”设置为默认值,没有设置任何内容。其他一切似乎都起作用了。思想? 需要明确的是:快捷方式是有效的,它完成了除“syso”之外的所有操作,正如到目前为止所看到的,在syso(也尝试了sysout)上,它表示“没有默认方案”

刚刚安装了Eclipse Helios(Win7 64),我遇到了一个奇怪的问题。我输入了syso-Ctrl-Space,它应该是System.out.println(“”)的一部分,但它不起作用!我在网上搜索了大约一个小时,我将“首选项”>“Java”>“编辑器”>“内容辅助”设置为默认值,没有设置任何内容。其他一切似乎都起作用了。思想?

需要明确的是:快捷方式是有效的,它完成了除“syso”之外的所有操作,正如到目前为止所看到的,在syso(也尝试了sysout)上,它表示“没有默认方案”。我在内容辅助中找不到这种快捷方式,但我还是将它们设置为默认值。

我认为正确的模板是“sysout”,我相信可以在某个地方配置,但无法告诉您在哪里。尝试sysout,然后按Ctrl+Space 这是一个模板,你可以在下面找到所有模板

窗口->首选项->Java->编辑器->模板

在这里,您可以看到模板名为“sysout”,这将触发System.out.writeln()的字符串替换,但您可以更改模板名(如果您更喜欢syso)和/或调用模板生成的实际代码


干杯

正如Peter所说,它位于窗口->Java->编辑器->模板下。 查找具有以下值的行

sysout“Java语句”“打印到标准输出”“打开”

预览应该如下所示

System.out.println(${word_selection}${});${cursor}

如果您仍然无法实现自动完成,请尝试启用内容辅助菜单下的模板建议。这是确切的位置

Windows->Preferences->Java->Editor->Content Assist->Advanced

并确保只有一个条目用于syso(在模板菜单下)。

您的光标需要位于合法获取该行的位置。如果您的游标在方法定义中,并且您键入syso,那么您将得到替换。但是,如果光标位于任何方法定义之外的文本部分,例如为类声明变量的位置,那么syso不会建议使用非法的行system.output.println()

我遇到了这个问题,阅读了这里的所有答案,确信它一定在我的副本中工作,并意识到我在上一个方法的结尾}下输入了syso,而不是在方法中


日食开始

同时检查此eclipse菜单: Windows->首选项->Java->外观->类型过滤器


如果您在此处看到
java.*
javax.*
,请尝试将其删除(或者恢复默认值将完成此工作),并看到它可以正常工作,这对我来说是可行的。

您可以尝试使用ALT+L设置内容辅助的快捷方式,如果可以,则可以再次选择您最喜欢的快捷方式。(快捷键Ctrl+空格与切换输入法的快捷键冲突)。在linux上的eclipse中,Word Completion的快捷方式是ALT+/,因此如果将其设置为Content Assist的快捷方式,它也会发生冲突。)

只需转到以下地址:

Windows->首选项->Java->编辑器->内容辅助->高级

然后单击恢复默认值…………仅此而已


它的工作又像一个魔咒。

刚刚找到了EclipseLuna的解决方案:编写syso并按CTRL+Space,然后单击“启用智能代码完成”,您就完成了设置。 我相信你也可以在选项中的某个地方找到它,但这样做又快又容易

肮脏的解决方法: 如果您仍然像我一样挣扎(仍然无法自己修复),您可以尝试以下自动热键代码


您需要将其写入.ahk文件并运行它(需要安装AutoHotkey)。您可能想将此文件放入启动文件夹。这是一个非常有用的工具,有一天你可能会想要扩展它。

你可能有重叠的快捷方式。。转到“概述”而不是“关键点”小节。在“过滤文本”部分键入“ctrl+space”。您应该看到“内容辅助”命令,可能还有另一个具有相同快捷方式的命令。如果确实存在另一个快捷方式,请将其快捷方式更改为其他快捷方式。

我正在使用Eclipse Galileo,并且遇到了相同的问题。即使在尝试了上述建议的解决方案后,它仍然不起作用。在做了下面的更改之后,它终于出来了

  • 转到Windows->首选项->Java->编辑器->模板
  • 选择sysout模板并编辑它
  • 将上下文从Java语句更改为Java

  • 这对我很有效。我希望这会对你有所帮助

    这是你的吗?Java版本?不是经典的eclipse或其他东西。eclipse IDE for Java开发者版本:Helios Service Release 2构建id:20110218-0911Mine也不会自动完成特定字符串。通常它会像Sys(auto complete.out.pr(auto complete))那样运行。你是说这个Eclipse版本有问题吗?它在伽利略和以前的版本中起作用了……你最近安装了任何可以捕捉键盘快捷键的工具吗?是的,它就在那里。我也将其设置为默认值,并且它处于启用状态。仍然不起作用(我应该写sysout和autocomplete?试过了)。一个问题,一个想法。1.其他自动完成功能是否正常工作,如“syserr”?2.也许出于某种原因,IDE不认为您正在使用Java文件,右键单击该文件,然后单击属性,然后查看“类型”以查看。您必须启用“模板建议”以实现与Java代码相关的自动完成。请参阅下面我的答案。谢谢。我必须说,我无法让它以默认设置的方式工作,但我创建了自己的模板“syso”,类型为“Java”,它可以工作。Thanx all:)Sysout>ctrl+space直到现在才给我打印语句。现在,它给了我这个选择
    private void Sysout(){//TODO Auto-generated method stub}
    。为什么会发生这种情况?模板显示
    System.out.println(${word\u selection}${})${cursor}
    。怎么了?该死的…我知道原因了。我在做Sysout,在代码块/method.Hi mwengler之外,就像我在这里说的:我输入正确。我还说过,如果我手动输入它,它会编译并工作,只有自动完成不起作用
    #persistent
    #ifwinactive ahk_class SWT_Window0  ; eclipse java
    :*:syso::
    sendraw System.out.println()`;
    loop, 2
        send {left}
    return
    #ifwinactive