在.tern_项目文件中使用TernJS计算Vim自动完成的JavaScript库

在.tern_项目文件中使用TernJS计算Vim自动完成的JavaScript库,javascript,jquery,vim,autocomplete,tern,Javascript,Jquery,Vim,Autocomplete,Tern,我喜欢vim,并希望继续使用它进行web开发,尽管我正在努力使用正确的库设置.tern_项目文件,以完成自动完成。我对JavaScript比较陌生,但到目前为止,我所掌握的知识使它更容易学习 我能找到的例子不多,我也试着读了一遍,但我知道的还不够多,这对我很有帮助。到目前为止,my.tern_项目文件如下所示: { "libs": [ "browser", "ecma6" ], "plugins": { "requirejs": { "baseUR

我喜欢vim,并希望继续使用它进行web开发,尽管我正在努力使用正确的库设置.tern_项目文件,以完成自动完成。我对JavaScript比较陌生,但到目前为止,我所掌握的知识使它更容易学习

我能找到的例子不多,我也试着读了一遍,但我知道的还不够多,这对我很有帮助。到目前为止,my.tern_项目文件如下所示:

{
  "libs": [
    "browser",
    "ecma6"
  ],
  "plugins": {
    "requirejs": {
      "baseURL": "./",
      "paths": {}
    }
  }
}
我真的不知道这些插件是做什么的,但我现在把它们留在了libs中,ecma6在所有的数组方法(如forEach等)上都帮了我的忙。现在我的问题是如何添加自动完成之类的内容

我需要将哪个库添加到.tern_项目文件中

此外,我愿意接受关于更好的web开发环境的建议。

  • 在这一点上,你所得到的只是tern的默认完成!!!您的.tern_项目对tern建议的完成没有任何影响,因为tern配置文件是.tern项目;它的破折号不是下划线。因此,首先将其重命名

    .tern项目是一个json配置文件,它通过两个属性告诉tern应该建议什么样的完成:libs插件


  • 插件libs没有太大区别,它们告诉tern除了libs之外,还建议您指定这些完成

    例如,在.tern项目文件中,您选择使用requirejs插件。所以,如果您使用模块加载器,帮助编写客户端模块代码,那么它将完成来自其他模块的变量、函数和方法


  • 控制台是节点的全局控制台。要完成节点的内容,您应该添加节点插件。因此,您的.tern项目文件应该类似于:

    {
      "libs": [
        "browser",
        "ecmascript"
      ],
      "plugins": {
        "node": {}
      }
    }
    
    注意我使用了
    ecmascript
    来代替
    ecma6
    。在以前的版本中,tern有
    ecma5
    ecma6
    libs,但在最新的版本中,这两个库组合在一个名为
    ecmascript
    的库中

可用ternLIB的列表

  • 浏览者
  • ecmascript
  • jquery
  • 反应
  • 强调
您总是可以从以下位置获得LIB的更新列表:

可用tern插件列表

  • 棱角的
  • 普通的
  • 完整字符串
  • doc_评论
  • es_模
  • 节点
  • 安魂曲
  • 网页包
您可以随时从中获得插件的更新列表


随着javascript技能的提高,可以添加并使用lib和插件,看看您得到了什么。还请注意,您可以有多个.tern项目文件。Tern将始终向上搜索根目录,并使用最接近的根目录。因此,您可以在项目基础上配置完成

完成(“自动”或“非自动”)不是一个学习/探索工具,你有相关的文档。答案很好。这是我在tern项目文件中看到的最多信息(实际Ternjs.net站点之外)。谢谢。这是否意味着tern只为某些LIB提供自动完成功能?在node_modules dorectory中,它没有一个标准的方法来查找任何库的所有方法等吗