VIM + JSLint?

ben*_*ier 119 javascript vim lint

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

编辑:

试过这个:Javascript语法从Vim检查,不幸的是输出很粗糙.

Ory*_*and 183

IMO的最佳实践方式是:

  1. 安装Syntastic Vim插件 - 适用于大量语言的最佳语法检查器,另外还集成了Vim的位置列表(== quickfix)窗口.
  2. 从以下两个选项中选择一个:

JSLint的

  1. jsl使用您最喜欢的包管理器(Ubuntu apt-get,Mac的brew等)安装(JSLint可执行文件).

社区驱动的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版本.

请享用!:)

  • 我花了很长时间试图找出为什么没有出现任何事情...如果你拉Ory的.jshintrc意识到在"predef"对象中的"google"之后有一个尾随的逗号导致jshint无法加载合成以无声地失败. (9认同)
  • 好的,注意到Syntastic需要ballon_eval,MacVim不支持.太糟糕了.. (2认同)

f3l*_*lix 34

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

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

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

var filename= arguments[0];
Run Code Online (Sandbox Code Playgroud)

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

 print ( filename + ":" + (obj["line"] + 1) + ":" + (obj["character"] + 1) + ":" + obj["reason"] );
Run Code Online (Sandbox Code Playgroud)

这使得mylintrun.js输出一个错误列表,可以与VIM quickfix窗口(:copen)一起使用.

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

set makeprg=cat\ %\ \\\|\ /my/path/to/js\ /my/path/to/mylintrun.js\ %
set errorformat=%f:%l:%c:%m
Run Code Online (Sandbox Code Playgroud)

你需要将/ my/path/to/js更改为SpiderMonkey和/my/path/to/mylintrun.js的路径到你放置JS文件的路径.

现在,您可以使用:make in VIM并使用quickfix窗口(:quickfix-window)从错误跳转到错误.


Ale*_*ahn 17

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

  • 另外一定要看看下面提到的JSHint. (3认同)

blu*_*eys 6

我一直很高兴使用node-lint

sudo npm -g install jslint
Run Code Online (Sandbox Code Playgroud)

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

set makeprg=jslint\ %
set errorformat=%-P%f,
        \%E%>\ #%n\ %m,%Z%.%#Line\ %l\\,\ Pos\ %c,
        \%-G%f\ is\ OK.,%-Q
Run Code Online (Sandbox Code Playgroud)

现在一个:make将运行jslint.错误显示在quickfix窗口中.