Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用vim';什么是快速修复功能?_Vim_Jslint - Fatal编程技术网

如何使用vim';什么是快速修复功能?

如何使用vim';什么是快速修复功能?,vim,jslint,Vim,Jslint,我是一个非常新的Vim用户,我发现它的学习曲线非常陡峭(至少对我来说)。我刚刚安装了JavaScriptLint错误检查,它在保存缓冲区后在vim的quickfix窗口中显示错误 然而,我不知道下一步该怎么办。。如何“滚动”所有错误?如何关闭快速修复“窗口”?在我对代码进行更改后,如何让它检查错误 我已经看过了vim quickfix文档,但是命令太多了,我似乎找不到我想要的。任何帮助都将不胜感激 附带问题:有没有办法让javascriptlint检查.html文件中代码的js错误 谢谢 正如您

我是一个非常新的Vim用户,我发现它的学习曲线非常陡峭(至少对我来说)。我刚刚安装了JavaScriptLint错误检查,它在保存缓冲区后在vim的quickfix窗口中显示错误

然而,我不知道下一步该怎么办。。如何“滚动”所有错误?如何关闭快速修复“窗口”?在我对代码进行更改后,如何让它检查错误

我已经看过了vim quickfix文档,但是命令太多了,我似乎找不到我想要的。任何帮助都将不胜感激

附带问题:有没有办法让javascriptlint检查.html文件中代码的js错误

谢谢

正如您所说,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
:.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
  • 如果您使用的是Syntastic,您将获得位置列表而不是快速修复列表。没问题,只需以相同的方式使用
    [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键选择错误而不关闭快速修复窗口。对于初学者“你也可以这样做:'