我是一个非常新的Vim用户,我发现它的学习曲线非常陡峭(至少对我而言)。我刚刚为JavaScriptLint错误检查安装了this vim script,一旦我保存了缓冲区,就会在vim的quickfix窗口中显示错误。
但是,我不知道下一步该做什么..如何“滚动”所有错误?如何关闭quickfix'窗口'?在对代码进行更改后,如何检查错误?
我看过vim quickfix文档,但命令数量太大,我似乎无法找到我想要的东西。任何帮助,将不胜感激。
一个附带问题:有没有办法让javascriptlint检查驻留在.html文件中的代码的js错误?
谢谢!
正如你所说,有很多针对quickfix的commands,但我倾向于发现我只使用它们中的一小部分:
: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
:cnf " Go to the first error in the next file
我倾向于使用它与:make
和:vimgrep
,所以我不能评论Javascript lint检查器,但这应该给你一些入门。
关于JavascriptLint的一般用法,我不是一个javascript程序员,但看起来该脚本公开了一个名为“JavascriptLint”的函数,所以如果你想手动调用它,你可以使用:call JavascriptLint()
。但是,它适用于文件的磁盘副本,因此必须先保存。如果(且仅当)命令行jsl
适用于html文件,您应该能够在html文件上使用:call JavascriptLint()
来检查内部javascript。你也可以这样做:
autocmd BufWritePost,FileWritePost *.html call JavascriptLint()
自动化它。如果jsl
不支持html文件,那么(没有修补应用程序或要求作者更改它),这可能是一个失败的原因......
导航quickfix列表(或位置列表,就此而言)的最简单方法是the unimpaired
plugin。
填充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年提出的。
在这种情况下,您还可以使用:cc 2
(或任何其他数字)跳转到quickfix窗口中的第二个错误。使用:cn
,:cc 4
等进行导航会将光标放在相关的行上。
将以下两行放在.vimrc文件中:
map <C-j> :cn<CR>
map <C-k> :cp<CR>
现在,您可以使用ctrl-j和ctrl-k浏览错误,它们模拟标准向下和向上运动命令j和k。
集成JavaScript语法检查的最佳实践方法是使用Syntastic Vim plugin,它使用Vim的位置列表(与quickfix并行)窗口。
我已经为this question和this question解释了如何做到这一点,以及如何使用社区驱动的jshint.com(比JSLint IMO更好的方式)和Mozilla的DoctorJS(以前的方式)获取Vim的源代码浏览/标记列表的答案jsctags)。
quickfix窗口的运行方式与其他任何vim窗口一样:j向下一行,k向上一行,cn跳转到下一个错误/警告等。
实验!
也许这个选项在写这个问题时不存在(或者我自己很尴尬,因为我的.vimrc
中有一些东西可以实现这一点)但是当我得到一个Quickfix List
时,我只需用j
和k
导航它然后点击<CR>
(即Enter键)跳转到文件中的那个位置。
然后,为了回到Quickfix List
,我输入Ctrl
+ W
j
“向下移动一个窗口”然后我回来了。
最后,当我完成后,我只需输入:q
,就像关闭任何正常窗口一样。