在.tern_project文件中使用TernJS计算出用于Vim自动完成的JavaScript库

Mat*_*ski 14 javascript vim jquery autocomplete tern

我喜欢vim,并希望继续使用它进行Web开发,尽管我正在努力设置我的.tern_project文件,其中包含我需要自动完成的正确库.我对JavaScript比较陌生,但到目前为止我所做的更容易学习.

我找不到很多例子,我试图阅读文档,但我不知道它是否有用.到目前为止,我的.tern_project文件如下所示:

{
  "libs": [
    "browser",
    "ecma6"
  ],
  "plugins": {
    "requirejs": {
      "baseURL": "./",
      "paths": {}
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我真的不知道插件是做什么的,但我现在把它们留在了,在库中,ecma6真的帮助了我所有的数组方法(即forEach等).现在我的问题是如何将console.table()等内容添加到自动完成功能?

我需要将哪个库添加到.tern_project文件中?

此外,我愿意接受更好的Web开发环境的建议.

dNi*_*tro 36

  • 在这一点上,你所拥有的只是tern的默认完成!您的.tern_project对tern建议的完成没有任何影响,因为tern配置文件是.tern-project ; 它的短跑不是下划线.所以先重新命名.

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


  • 插件libs没有太大的不同,他们告诉tern除了lib之外还建议你指定这些完成.

    例如,在.tern-project文件中,您选择使用requirejs插件.因此,如果您使用requirejs作为模块加载器并帮助编写客户端模块化代码,那么它将完成其他模块的变量,函数和方法.


  • console是节点的全局.并且要完成节点内容,您应该添加节点插件.所以你的.tern-project文件应该是这样的:

    {
      "libs": [
        "browser",
        "ecmascript"
      ],
      "plugins": {
        "node": {}
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    请注意,我用来ecmascript代替ecma6.在以前的版本中,tern有ecma5ecma6libs,但在最新版本中,这两个被合并在一个名为:的lib中ecmascript.

可用的燕鸥列表:

  • 浏览器
  • ECMAScript中
  • jQuery的
  • 应对
  • 下划线

您总是可以从tern js repository defs目录中获取更新的lib列表

可用的tern 插件列表:

  • CommonJS的
  • complete_strings
  • doc_comment
  • es_modules
  • 节点
  • requirejs
  • 的WebPack

您总是可以从tern js repository plugin目录中获取更新的插件列表

随着你的javascript技能的增长,你可以添加和使用libs和插件,看看你得到了什么完成.另请注意,您可以拥有多个.tern-project文件.Tern将始终向上搜索根目录并使用最近的目录.所以你可以在项目的基础上配置完成.

  • 很好的答案.这是我在tern项目文件中看到的最多信息(在Ternjs.net网站之外).谢谢. (3认同)
  • 这是否意味着tern仅为某些库提供自动完成功能?它没有标准的方法来查找node_modules dorectory中任何lib的所有方法等 (3认同)