你如何使用vim的quickfixfunction?
我是一个非常新的Vim用户,我发现它的学习曲线非常陡峭(至less对我而言)。 我刚刚安装了这个vim脚本来进行JavaScriptLint错误检查,一旦我保存了缓冲区,就会在vim的quickfix窗口中显示错误。
但是,我不知道下一步该怎么做..我如何滚动所有的错误? 如何closuresquickfix'窗口'? 如何在更改我的代码后检查错误?
我看过vim quickfix文档,但是命令的数量是压倒性的,我似乎无法find我想要的。 任何帮助,将不胜感激。
一个侧面的问题:有没有什么办法来检查js错误的JavaScriptlint驻留在.html文件中的代码?
谢谢!
如你所说,有很多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 :cnf " Go to the first error in the next file
我倾向于使用:make
和:vimgrep
,所以我不能评论Javascript lint检查器,但是这应该会给你一些启动。
关于JavascriptLint的一般用法,我不是一个JavaScript程序员,但它看起来像脚本公开了一个名为“JavascriptLint”的函数,所以如果你想手动调用它,你可以使用:call JavascriptLint()
。 但是,它在文件的磁盘副本上工作,所以它必须先保存。 如果(且仅当)命令行jsl
在html文件上工作,您应该能够使用:call JavascriptLint()
在html文件上:call JavascriptLint()
来检查内部javascript。 你也可以这样做:
autocmd BufWritePost,FileWritePost *.html call JavascriptLint()
自动化。 如果jsl
不支持HTML文件,那么(很less修补应用程序或要求作者改变它),这可能是一个失败的原因…
导航quickfix列表(或者位置列表)最简单的方法就是unimpaired
插件 。
一旦quickfix窗口被填充, [q
和]q
在quickfix列表中分别前后移动。 [Q
和]Q
开始和结束(如果列表中只有一个项目,这尤其方便;这使vim抱怨[q
和]q
)。 所以工作stream程是:
- 运行任何命令填充quickfix列表
- input
[Q
去第一个项目 - 使用
[q
和]q
滚动后续项目(如果有的话)
如果您正在使用Syntastic,您将获得位置列表,而不是quickfix列表。 没问题; 用同样的方式使用[L
, ]L
, [l
, ]l
。
unimpaired
也有其他方便的映射负载 – [e
和]e
“泡”线上下, [<Space>
和]<Space>
上面和下面插入空行,等等。 这可能是因为直到2010年1月,这个问题才出现。
您也可以使用:cc 2
(或任何其他数字)跳转到,在这种情况下,quickfix窗口中的第二个错误。 使用:cn
, :cc 4
等进行导航会将光标放在相关的行上。
将下面的两行放在.vimrc文件中:
map <Cj> :cn<CR> map <Ck> :cp<CR>
现在,您可以使用ctrl-j和ctrl-k浏览错误,模拟标准的向下和向上运动命令j和k。
集成JavaScript语法检查的最佳实践方法是使用Syntastic Vim插件 ,该插件使用Vim的位置列表 (与quickfix平行)。
我已经为这个问题写了答案, 这个问题解释了如何做,以及如何使用社区驱动的jshint.com (这比JSLint IMO更好的方式)获得Vim的源代码浏览/标签列表和Mozilla的DoctorJS (以前的jsctags )。
quickfix窗口的操作与其他任何vim窗口大致相同:j下行,k上行,:cn跳转到下一个错误/警告等。
实验!
也许这个选项在编写这个问题的时候不存在(或者我自己感到尴尬,因为我的.vimrc
中有一些东西会导致这种情况发生),但是当我得到一个Quickfix List
,我用j
和k
导航它,然后点击<CR>
(即Enter键)跳转到文件中的那个位置。
然后,回到Quickfix List
我inputCtrl
+ W
j
作为“向下移动窗口”,然后我回来了。
最后,当我完成后,我只需键入:q
,就像我将closures任何正常的窗口。