ESLint / Vim(或 neovim)工作流

ESLint / Vim (or neovim) workflow

我已经将 ESLint 与 Vim 以及各种其他插件(如 Ale 和 Prettier)一起使用。我现在很难再次设置。了解 ESLint 插件在没有任何其他插件或 Vim 或 neovim.

的任何其他配置的情况下的作用对我很有用。

我发现文档很难理解。我认为这部分是因为 ESLint 在许多情况下都可以工作,而不仅仅是 Vim`,而且所写的大部分内容都假设安装了其他插件,例如麦酒

我猜如果你正在编辑一个 Vim 文件(也许只有当它有 .js 扩展名时?)你可以进入正常模式并调用 ESLint(例如 :eslint),然后查看指示的代码中的任何错误。

基础知识

  1. 为了简化,最好将 ESLint 视为独立的 command-line linter,与 Vim 或任何其他文本 editor/IDE.

  2. 默认使用模式是在您的 shell 中执行它,文件作为参数:

    $ eslint goodfile.js
    (no output)
    
    $ eslint badfile.js
    (list of errors)
    

    它也可以用作过滤器:

    $ echo 'console.log(1)' | eslint --stdin
    (list of errors)
    
  3. 它也可以被告知去修复它能修复的,而不仅仅是报告它:

    $ eslint --fix badfile.js
    

在Vim

与许多 command-line 程序(无论是否为 linter)一样,ESLint 可以从 Vim 以多种方式使用。

最简单的就是直接在当​​前文件上执行:

:!eslint %
(list of errors)

或者在当前缓冲区上,如果它没有写入磁盘:

:w !eslint --stdin
(list of errors)

但是该方法虽然提供了信息,但并不是很有用,因为一旦您按下 <CR>,错误就会消失。

更好的方法是使用 :make 命令,它使用底层 linter 或编译器或其他任何报告的错误填充 quickfix 列表。一般来说,它是这样工作的:

  1. 告诉 Vim 将程序 foo 用于 :makeset makeprg=foo
  2. 告诉Vim如何用set errorformat+=<pattern>解析foo的输出。
  3. 通过foo.
  4. 对当前文件运行做:make %
  5. 执行 :cwindow 以显示 foo 报告的错误列表,如果有的话。

在 ESLint 的情况下,如果你的 Vim 足够新,它应该带有所谓的“编译器脚本”(我写的),它基本上执行上面的步骤 #1 和 #2为你。你可以检查你是否有它:

:compiler eslint

如果出现错误,请考虑升级。

选择编译器后,您可以执行上面的步骤 #3 和 #4 来检查您的文件,老实说,这很乏味。

从那里,您可以选择三个路径之一:

  1. 继续这样做,因为这样很好,
  2. 多了解一下您的编辑器,以便使整个过程自动化,
  3. 放弃修补并使用 third-party 插件。

路径 #2 看起来像 this。它不是特别难或复杂,但我不会推荐给 copy/pasting 新手。

路径 3 涉及安装像 ALE 这样的插件,它有完整的文档记录并有专门的问题跟踪器。