在 .tern_project 文件中找出 JavaScript 用于 Vim 自动补全的库

Figuring out JavaScript libraries for Vim autocompletion with TernJS in .tern_project file

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

我能找到的示例不多,我已经尝试阅读 documentation,但我对它的了解还不足以提供帮助。到目前为止,我的 .tern_project 文件如下所示:

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

我真的不知道插件的作用,但我暂时把它们留在里面,在库中,ecma6 确实帮助我处理了所有数组方法(即 forEach 等)。现在我的问题是如何将 console.table() 之类的内容添加到自动完成中?

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

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

  • 此时你得到的只是tern的默认补全!!!你的 .tern_project 对 tern 建议的完成没有任何影响,因为 tern 配置文件是 .tern-project;它是 Dash 而不是 underscore。所以先重命名它。

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


  • pluginslibs 没有太大区别,它们告诉 tern 还建议您另外指定这些补全到库。

    例如,在您的 .tern-project 文件中,您选择使用 requirejs 插件。所以如果你使用 requirejs library 这是一个模块加载器并帮助编写客户端模块化代码,那么它会完成来自其他模块的变量、函数和方法。


  • console是一个节点的全局。并完成节点的东西你应该添加 node 插件。所以你的 .tern-project 文件应该是这样的:

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

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

可用燕鸥列表libs:

  • 浏览器
  • ecmascript
  • jquery
  • 反应
  • 下划线

您始终可以从 tern js repository defs directory

获取更新的库列表

可用的 tern 列表 插件 :

  • angular
  • commonjs
  • complete_strings
  • doc_comment
  • es_modules
  • 节点
  • 需要
  • webpack

您随时可以从 tern js repository plugin directory

获得更新的插件列表

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