如何使用vim';什么是快速修复功能?
我是一个非常新的Vim用户,我发现它的学习曲线非常陡峭(至少对我来说)。我刚刚安装了JavaScriptLint错误检查,它在保存缓冲区后在vim的quickfix窗口中显示错误 然而,我不知道下一步该怎么办。。如何“滚动”所有错误?如何关闭快速修复“窗口”?在我对代码进行更改后,如何让它检查错误 我已经看过了vim quickfix文档,但是命令太多了,我似乎找不到我想要的。任何帮助都将不胜感激 附带问题:有没有办法让javascriptlint检查.html文件中代码的js错误 谢谢 正如您所说,quickfix有很多功能,但我倾向于使用其中的一小部分:如何使用vim';什么是快速修复功能?,vim,jslint,Vim,Jslint,我是一个非常新的Vim用户,我发现它的学习曲线非常陡峭(至少对我来说)。我刚刚安装了JavaScriptLint错误检查,它在保存缓冲区后在vim的quickfix窗口中显示错误 然而,我不知道下一步该怎么办。。如何“滚动”所有错误?如何关闭快速修复“窗口”?在我对代码进行更改后,如何让它检查错误 我已经看过了vim quickfix文档,但是命令太多了,我似乎找不到我想要的。任何帮助都将不胜感激 附带问题:有没有办法让javascriptlint检查.html文件中代码的js错误 谢谢 正如您
: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
:.cc " Go to error under cursor (if cursor is in quickfix window)
我倾向于将其与:make
和:vimgrep
一起使用,因此我不能对Javascript lint检查器发表评论,但这应该会给您一些入门信息
关于JavascriptLint的一般用法,我不是javascript程序员,但它似乎公开了一个名为“JavascriptLint”的函数,因此如果您想手动调用它,可以使用:call JavascriptLint()
。但是,它在文件的磁盘副本上工作,因此必须先保存它。如果(且仅当)命令行jsl
对html文件起作用,您应该能够对html文件使用:call JavascriptLint()
,以检查内部javascript。你也可以这样做:
autocmd BufWritePost,FileWritePost *.html call JavascriptLint()
使之自动化。如果
jsl
不支持html文件,那么(除了修补应用程序或要求作者更改它之外),这可能是一个失败的原因……quickfix窗口的操作与任何其他vim窗口基本相同:j向下一行,k向上一行,:cn跳转到下一个错误/警告,等等
实验 在这种情况下,您还可以使用
:cc 2
(或任何其他数字)跳转到quickfix窗口中的第二个错误。使用:cn
,:cc 4
等导航会将光标放在有问题的行上。集成JavaScript语法检查的最佳实践方法是使用,即使用Vim的位置列表(与quickfix平行)窗口
我已经回答并解释了如何做到这一点,以及如何使用社区驱动(比JSLint IMO好得多)和Mozilla(以前是jsctags)为Vim获取源代码浏览/标记列表 填充快速修复窗口后,
[q
和]q
分别在快速修复列表中前进和后退[Q
和]Q
转到开头和结尾(如果列表中只有一项,这尤其方便;这使vim抱怨[Q
和]Q
)。因此,工作流程是:
[Q
转到第一项[q
和]q
[L
,]L
,[L
和]L
unpaired
也有大量其他方便的映射--[e
和]e
“气泡”上下排列,[
和]
在上面和下面插入空行,等等。我很惊讶之前没有人在这里提到它;这可能是因为它直到2010年1月才存在,尽管这个问题是在2009年提出的。也许这个选项在写这个问题时不存在(或者可能我让自己感到尴尬,因为我的.vimrc
中有某种东西导致了这种情况)但是当我得到快速修复列表时,我只需使用j
和k
导航,然后点击
(即回车键)跳转到文件中的那个位置
然后,要返回到快速修复列表
I键入Ctrl
+W
j
“向下移动窗口”,我就回来了
最后,完成后,我只需键入:q
,就像关闭任何普通窗口一样。在.vimrc文件中放入以下两行:
map <C-j> :cn<CR>
map <C-k> :cp<CR>
map:cn
地图:cp
现在,您可以使用ctrl-j和ctrl-k在错误中导航,这模仿了标准的向下和向上运动命令j和k。除了关于如何打开和关闭快速窗口以及在条目之间导航的@DrAl很棒的答案之外,我还制作了一张图像来显示其他一些快速修复导航命令
以下每组3个文件表示一组快速修复结果,例如来自vimgrep的结果。cnewer和colder用于查看历史结果集。
谢谢,这些命令是一个很好的开始,我只需要玩一玩并习惯它的工作方式。如果我使用:cn转到qf窗口中的错误,我可以在不退出qf窗口的情况下用我的代码跳转到窗口吗?它可以跳转到有错误的行吗?您建议使用:call可以工作,但它会遵循我的链接这不是我想要的。@hora::cn
不应该关闭qf窗口,但它会切换到包含错误的窗口:这就是你所说的“跳转”的意思吗?你可以用Ctrl-Wp
或:wincmd p
快速切换回来,这样你就可以执行:command!cn:cn;wincmd p
或类似的操作(未测试)。这将为您提供一个:CN
命令,该命令将转到下一个错误,而不关闭快速修复窗口。或者,您可以执行类似:au bufwinter quickfix nmap:.cc | wincmd p
(再次未测试)的操作,并使用Enter键选择错误而不关闭快速修复窗口。对于初学者“你也可以这样做:'