我是一个非常新的Vim用户,我发现它的学习曲线非常陡峭(至少对我而言).我刚安装了这个用于JavaScriptLint错误检查的vim脚本,它在保存缓冲区后显示了vim的quickfix窗口中的错误.
但是,我不知道下一步该做什么..如何"滚动"所有错误?如何关闭quickfix'窗口'?在对代码进行更改后,如何检查错误?
我看过vim quickfix文档,但命令数量太大,我似乎无法找到我想要的东西.任何帮助,将不胜感激.
一个附带问题:有没有办法让javascriptlint检查驻留在.html文件中的代码的js错误?
谢谢!
DrA*_*rAl 131
正如你所说的那样,quickfix 有很多命令,但我倾向于发现我只使用了一小部分:
:copen " Open the quickfix window
:ccl " Close it
:cw " Open it if there are "errors", close it otherwise (some people prefer this)
:cn " Go to the next error in the window
:cp " Go to the previous error in the window
:cnf " Go to the first error in the next file
Run Code Online (Sandbox Code Playgroud)
我倾向于使用:make和:vimgrep,所以我不能评论Javascript lint检查器,但这应该给你一些入门.
关于JavascriptLint的一般用法,我不是javascript程序员,但看起来脚本公开了一个名为"JavascriptLint"的函数,所以如果你想手动调用它,你可以使用:call JavascriptLint().但是,它适用于文件的磁盘副本,因此必须先保存.如果(且仅当)命令行jsl适用于html文件,您应该能够:call JavascriptLint()在html文件上使用来检查内部javascript.你也可以这样做:
autocmd BufWritePost,FileWritePost *.html call JavascriptLint()
Run Code Online (Sandbox Code Playgroud)
自动化它.如果jsl不支持html文件,那么(没有修补应用程序或要求作者更改它),这可能是一个失败的原因......
Chi*_*ogg 56
导航quickfix列表(或位置列表,对于这个问题)最简单的方法是将unimpaired插件.
一旦填充了quickfix窗口,[q并]q在quickfix列表中前进和后退(分别). [Q并且]Q开始和结束(如果你在列表中只有一个项目,这将特别方便;这使得vim抱怨[q和]q).所以工作流程是:
[Q要转到第一个项目[q和]q如果您正在使用Syntastic,您将获得位置列表而不是quickfix列表.没问题; 只是使用[L,]L,[l,并]l以同样的方式.
unimpaired还有很多其他方便的映射 - [e并且]e"泡沫"线条上下,[<Space>并]<Space>在上方和下方插入空白线等.我很惊讶之前没有人提到它; 这可能是因为它直到2010年1月才存在,尽管问题是在2009年提出的.
Ami*_*ich 20
将以下两行放在.vimrc文件中:
map <C-j> :cn<CR>
map <C-k> :cp<CR>
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用ctrl-j和ctrl-k浏览错误,它们模拟标准向下和向上运动命令j和k.
run*_*ace 13
除了@DrAl 关于如何打开和关闭快速窗口以及在条目之间导航的出色回答之外,我还制作了一张图片来展示其他一些快速修复导航命令。
下面每组 3 个文件代表一组 quickfix 结果,例如来自 vimgrep。cnewer 和colder 用于查看历史结果集。

集成JavaScript语法检查的最佳实践方法是使用Syntastic Vim插件,该插件使用Vim的位置列表(与quickfix并行)窗口.
我已经为这个问题写了答案,这个问题解释了如何做到这一点,以及如何使用社区驱动的jshint.com(这比JSLint IMO更好)获取Vim的源代码浏览/标签列表 Mozilla的DoctorJS(以前的jsctags).
也许,当这个问题被写这个选项是不存在的(或者也许我尴尬,因为我自己有什么东西在我.vimrc这使这种情况发生),但是当我得到一个Quickfix List,我只是浏览它j和k然后打<CR>(即回车键)跳转到文件中的那个地方.
然后,回到Quickfix ListI类型Ctrl+ W j"向下移动一个窗口"然后我回来了.
最后,当我完成后,我只需键入:q,就像我要关闭任何正常窗口一样.