Sublime Text 2自动完成弹出窗口无法正常工作

25
我在使用通过包管理工具安装的jQuery代码片段时出现了问题。安装后,我没有弹出窗口显示jQuery代码提示和自动完成。请看这个视频:
http://code.tutsplus.com/courses/perfect-workflow-in-sublime-text-2/lessons/adding-snippets-through-package-control

在0:50的时候,输入.后他就得到了代码提示 - 我没有这个功能。我必须先输入.然后按下Tab才能显示带代码片段的弹出窗口...
是的,我正在JavaScript文件中,并且我使用了默认设置。

而且,在输入.之后,他也能获得所有的jQuery函数,例如addaddClass。即使我按下Ctrl+Space,我也没有这个功能。


你们好,你们的电脑上有没有像上面那个视频中一样,在输入JavaScript或jQuery代码时实时自动完成功能?- born2fr4g 刚刚编辑 - born2fr4g
下面的答案是正确的。 - Richard Jordan
这可能是重复的问题:“在Sublime Text下获取完整的JS自动完成”。 - dbn
请提供要翻译的内容。 - dbn
我遇到了相同的问题。下面的答案没有帮助。 - Alexander Rechsteiner
显示剩余2条评论
4个回答

65

如果你按下CTRL-SPACE,你将会得到下拉列表,其中列出了你刚刚输入的可用自动完成选项。

http://www.sublimetext.com/docs/2/tab_completion.html

如果你想在输入时自动弹出自动完成下拉列表,请在你的用户首选项文件User Preferences.sublime-settings中添加以下行:

{
  "auto_complete_selector": "source, text"
}

那应该能做到你想要的啦 :-)


很不幸,这并没有帮助。我在Windows上的ST2也遇到了同样的问题,我正在尝试使用自动完成来运行那些jQuery代码片段。但是,它就是不起作用。 - Alexander Rechsteiner
好的,找到问题了!请查看下面的答案。 - Alexander Rechsteiner

14

考虑将用户设置更改为以下内容:

{
  // By default, auto complete will commit the current completion on enter.
  // This setting can be used to make it complete on tab instead.
  // Completing on tab is generally a superior option, as it removes
  // ambiguity between committing the completion and inserting a newline.
  "auto_complete_commit_on_tab": true,

  // Controls if auto complete is shown when snippet fields are active.
  // Only relevant if auto_complete_commit_on_tab is true.
  "auto_complete_with_fields": true,

  // As Richard Jordan suggested, this item
  // controls what scopes auto complete will be triggered in
  "auto_complete_selector": "source, text"
}

按下 Mac 上的 Cmd+, 或 Windows 上的 Ctrl+, 打开您的 用户设置

如果你想完全掌握 Sublime Text 2,我建议学习这门课程:完美工作流在 Sublime Text 中。当我第一次发布这个答案时,这门课程是免费的。尽管现在不是了,但我仍然强烈推荐它。


3

你使用的是哪个操作系统?我猜测是Windows。

这里的问题似乎是可用插件中的jQuery代码片段具有以$.开头的<tabTrigger>属性,这会引起麻烦。

尝试以下步骤:找到包含那些片段的jQuery软件包(在首选项 -> 浏览程序包下),并打开一个无法正常工作的代码片段的.sublime-snippet文件。您在帖子中命名的那一个将在文件event-on.sublime-snippet中定义。

找到该行:

<tabTrigger>.on</tabTrigger>

并按照以下方式删除

<tabTrigger>on</tabTrigger>

保存并返回您的 .js 文件。现在查看是否在键入 o 时出现了片段。这对我有用。

我猜这是 Sublime Text 2 for Windows(也许是 Linux?)的一个 bug,因为正如您所链接的视频课程中所看到的那样,在 OS X 上它显然运作正常。

有一个 GitHub 上创建的问题 关于这个特定的软件包,我已经在评论中提到了这个信息。我想让它工作的唯一方法是使用不以特殊字符开头的代码片段。

我还在 Userecho 上向 Sublime Text 提交了一个 错误报告


3
该视频的作者正在使用SublimeCodeIntel。您在00:50看到的不是Sublime Text 2的自动完成弹出窗口,而是SublimeCodeIntel的导入自动完成弹出窗口:

导入自动完成 - 实时显示可用模块/符号的自动完成。

有关更多信息,请参见Github页面

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