【问题标题】:Eclipse autocompletion problemEclipse自动完成问题
【发布时间】:2011-07-18 12:29:31
【问题描述】:

刚刚安装了 Eclipse Helios (Win7 64),我遇到了一个奇怪的问题。我键入 syso-Ctrl-Space 预计将完成 System.out.println("") 但它不起作用!我现在在网上搜索了大约一个小时,我将 Preferences > Java > Editor > Content Assist 设置为默认值,什么都没有。其他一切似乎都有效。想法?
需要明确的是:快捷方式有效,它完成了迄今为止所见的“syso”之外的所有内容,在 syso(也尝试过 sysout)上它显示“无默认提案”。我在 Content Assist 中找不到这种快捷方式,但我还是将它们设置为默认值。

【问题讨论】:

  • eclipse.org/downloads/packages/eclipse-ide-java-developers/… 这是你的吗? Java版本?不是经典的日食或其他一些东西。
  • Eclipse IDE for Java Developers 版本:Helios Service Release 2 Build id:20110218-0911
  • 我的也不会自动完成那个特定的字符串。通常它像 Sys(auto-complete).out.pr(auto-complete)()
  • 你的意思是这个Eclipse版本有问题?它在伽利略和以前的系统中工作......
  • 您最近是否安装了任何可以捕捉该键盘快捷键的工具?

标签: java eclipse autocomplete shortcut


【解决方案1】:

我相信正确的模板是“sysout”,我相信这可以在某处进行配置,但无法告诉您在哪里。尝试 sysout 然后 Ctrl+Space 这是一个模板,您可以在

下找到所有模板

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

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

干杯

【讨论】:

  • 谢谢。我必须说我无法让它按照默认设置的方式工作,但我创建了自己的模板“syso”,类型为“Java”,它可以工作。谢谢大家:)
  • Sysout > ctrl + space 直到现在才给我打印语句。现在,它给了我这个选择private void Sysout() {//TODO Auto-generated method stub}。为什么会这样?模板上写着System.out.println(${word_selection}${});${cursor}。什么给了?
  • 该死的……知道了原因。我在代码块/方法之外做 Sysout。
【解决方案2】:

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

sysout "Java 语句" "打印到标准输出" "on"

预览应该如下...

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

【讨论】:

  • 是的,它就在那里。我也把它设置为默认值,它是打开的。还是不行(我应该写 sysout 和 autocomplete?试过了)。
  • 一个问题,一个想法。 1. 其他自动完成功能是否正常工作,例如“syserr”? 2. 可能出于某种原因,IDE 不认为您正在处理 Java 文件,右键单击该文件,然后单击属性,然后查看“类型”以查看。
  • 您必须为 java 代码相关的自动完成启用“模板提案”。请参阅下面的答案。
【解决方案3】:

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

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

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

【讨论】:

    【解决方案4】:

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

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

    Eclipse 开启!

    【讨论】:

    • 嗨 mwengler,就像我在这里说的:stackoverflow.com/questions/5358767/… 我输入正确。我还说过,如果我手动输入它会编译并工作,只有自动完成功能不起作用。这似乎是一个非常罕见的错误,因为人们只是不相信我:) 到目前为止,它只发生在我见过的一个课程中,但我会再说一遍:我在合法的地方输入法律代码,我' m 对 Java 编程并不陌生。
    • 请注意,它并不总是 'syso',许多其他自动压缩在某些方法中不起作用。这个类的唯一特别之处是代码“深度”——它有内部类,我在其中实现了打开线程的方法,这些方法可以实现 run() 等等……但我想说的是,在第一个100 行一切正常,这是我必须手动编写所有内容的较低行。
    • 我在答案中添加了课程。不是最好的设计,但这就是我当时所做的。例如,在我打印“文件已加载”或“正在加载备份”的地方,它没有完成 syso,但您可以看到它是正确的。
    【解决方案5】:

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

    如果您在此处看到 java.*javax.*,请尝试将其删除(或恢复默认设置即可)并看到它有效,它对我有用。

    【讨论】:

      【解决方案6】:

      您可以尝试使用 ALT+L 设置 Content Assist 的快捷方式,如果有效,您可以再次选择您喜欢的快捷方式。 (快捷键Ctrl+Space与切换输入法快捷键冲突)。在linux上的eclipse中,Word Completion的快捷键是ALT+/,所以如果你把它设置为Content Assist的快捷键也会冲突。)

      【讨论】:

        【解决方案7】:

        只要去以下地址:

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

        然后点击恢复默认............就是这样

        它又像魅力一样工作了。

        【讨论】:

          【解决方案8】:

          刚刚找到 Eclipse Luna 的解决方案:编写 syso 并按 CTRL+Space 并单击“启用智能代码完成”即可。 我相信您也可以在选项中的某个位置找到它,但这样既快速又简单!

          【讨论】:

            【解决方案9】:

            肮脏的解决方法: 如果您仍然像我一样苦苦挣扎,可以尝试以下 AutoHotkey-Code(仍然无法自己修复)

            #persistent
            #ifwinactive ahk_class SWT_Window0  ; eclipse java
            :*:syso::
            sendraw System.out.println()`;
            loop, 2
                send {left}
            return
            #ifwinactive
            

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

            【讨论】:

              【解决方案10】:

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

              【讨论】:

                【解决方案11】:

                我正在使用 Eclipse Galileo 并且遇到了同样的问题。即使在尝试了上述建议的解决方案后,它也没有奏效。进行以下更改后,它终于出来了。

                1. 转到 Windows->首选项->Java->编辑器->模板
                2. 选择 sysout 模板并进行编辑。
                3. 将上下文从 Java 语句更改为 Java。

                它对我有用。我希望这对你有帮助。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-02-13
                  • 2010-12-04
                  • 2011-08-08
                  相关资源
                  最近更新 更多