121

我在 vim 中度过了我的日子,目前正在编写大量 JavaScript。我一直在尝试找到一种方法将 JSLint 或类似的东西集成到 vim 中以改进我的编码。有没有人设法做这样的事情?

编辑:

试过这个:Javascript Syntax Checking From Vim,不幸的是输出非常粗糙。

4

6 回答 6

187

IMO的最佳实践方式是:

  1. 安装Syntastic Vim 插件- 适用于多种语言的最佳语法检查器,此外它还与 Vim 的位置列表(== quickfix ) 窗口集成。
  1. 选择以下两个选项之一:

JSLint

  1. 使用您最喜欢的包管理器(Ubuntu's 、Mac's home等)安装jsl(JSLint 可执行文件)。apt-getbrew

社区驱动的jshint.com(优于 JSLint)

  1. 使用你最喜欢的包管理器安装node.js。
  2. 安装节点包管理器:'curl https://npmjs.org/install.sh | sh'编辑:npm 现在是 node.js的一部分
  3. 全局安装jshint:'npm install jshint -g'
  4. 将你的 jshint配置文件放在你的$HOME目录中:'~/.jshintrc'
  5. 用这个覆盖Syntasticsyntax_checkers/javascript.vim文件-编辑:使用最新的 SYNTASTIC 版本不再需要。

享受!:)

于 2011-05-05T06:22:01.220 回答
34

您可以按照JSLint web-service + VIM 集成的说明进行操作,或者执行我所做的操作:

下载http://jslint.webvm.net/mylintrun.jshttp://www.jslint.com/fulljslint.js 并将它们放在您选择的目录中。

然后将以下行添加到 mylintrun.js 的开头:

var filename= arguments[0];

并将 mylintrun.js ("print(...)") 中的最后一行代码更改为:

 print ( filename + ":" + (obj["line"] + 1) + ":" + (obj["character"] + 1) + ":" + obj["reason"] );

这会在 mylintrun.js 中输出一个可以与 VIM 快速修复窗口 (:copen) 一起使用的错误列表。

现在在 VIM 中设置以下内容:

set makeprg=cat\ %\ \\\|\ /my/path/to/js\ /my/path/to/mylintrun.js\ %
set errorformat=%f:%l:%c:%m

您必须将/my/path/to/js更改为 SpiderMonkey 的路径,并将/my/path/to/mylintrun.js更改为放置 JS 文件的路径。

现在,您可以在 VIM中使用:make并使用快速修复窗口 (:he quickfix -window) 从错误跳转到错误。

于 2009-01-30T16:19:34.223 回答
17

另一种选择是来自 Jesse Hallet的jslint.vim 。它在 GitHub 上可用,可以使用或不使用 Vim 的 QuickFix 窗口。这是一个不错的插件!

于 2009-09-24T17:30:22.787 回答
6

我很高兴使用 node-lint

sudo npm -g install jslint

然后在你的某个地方敲这个.vim

set makeprg=jslint\ %
set errorformat=%-P%f,
        \%E%>\ #%n\ %m,%Z%.%#Line\ %l\\,\ Pos\ %c,
        \%-G%f\ is\ OK.,%-Q

现在 a:make将运行 jslint。错误出现在快速修复窗口中。

于 2012-03-24T06:16:13.273 回答
3

以下是 2012 年 11 月更新的 Mac OS 说明。假设您已安装Homebrew以获取 Node.js,并且您已经安装了 Syntastic for Vim(我使用https://github.com/carlhuda/janus自动提供):

$ brew install node.js
$ npm install -g jshint

然后将 '/usr/local/share/npm/bin' 添加到您的 PATH(可能在 ~/.bashrc 中)。例如,添加以下行: export PATH="$PATH:/usr/local/share/npm/bin"

重新启动您的终端并检查

$ jshint

可以从命令行执行。Syntastic 会自动发现 jsHint。重新启动 MacVim 并享受吧!

于 2012-11-14T18:24:39.977 回答
2

更好的是通过 Lynx 管道处理结果,以处理 JSLint 不幸地选择 HTML 作为输出格式。我有一篇关于如何在这里做的博客文章:

http://www.fleegix.org/articles/2008-09-06-jslint-in-vim-through-lynx

于 2009-09-12T19:09:22.597 回答