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

时间:2016-12-29 00:54:12

标签: javascript jquery vim autocomplete tern

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

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

{
  "libs": [
    "browser",
    "ecma6"
  ],
  "plugins": {
    "requirejs": {
      "baseURL": "./",
      "paths": {}
    }
  }
}

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

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

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

1 个答案:

答案 0 :(得分:34)

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

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

  • 插件 libs 大不相同,他们告诉tern除了lib之外还建议您指定这些完成。

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

  • 控制台是节点的全局。要完成节点内容,您应该添加 node 插件。所以你的 .tern-project 文件应该是这样的:

    {
      "libs": [
        "browser",
        "ecmascript"
      ],
      "plugins": {
        "node": {}
      }
    }
    

    注意我已使用ecmascript代替ecma6。在以前的版本中,tern有ecma5ecma6个库,但在最新版本中,这两个文件合并在一个名为ecmascript的库中。

可用燕鸥列表图书馆

  • 浏览器
  • 的ECMAScript
  • jquery的
  • 反应
  • 下划线

您始终可以从tern js repository defs directory

获取更新的库列表

可用的燕鸥插件列表

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

您始终可以从tern js repository plugin directory

获取更新的插件列表

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