如何在vim中实现语法检查?

4
这个问题以各种形式在这里被问了至少十几次,令我震惊的是没有一个回答实际上解决了如何配置syntasticjslint使其实现它应该做的事情(它的README文件完全无用)。 在这里看看 有人能提供一些逐步说明或链接到这样的说明吗?我试图安装jslint和spidermonkey,但我一无所获。
我设法让语法检查工作正常(感谢romainl)。在此过程中,我学到了一些东西,可能对类似问题有所帮助。
  1. 构建 Javascript Lint,请查找位于 jsl-x.x.x/src/README.html 中的 README 文件。
  2. 构建说明为 gmake -f Makefile.ref,但 gmakemake相同的东西,因此执行命令 sudo ln -s /usr/bin/make /usr/bin/gmake
  3. 现在可以在 jsl-0.3.0/src/Linux_All_DBG.OBJ/jsl 中找到 jsl。要使其普遍可用,请执行以下操作: ln -s /whatever/jsl-0.3.0/src/Linux_All_DBG.OBJ /home/ForestGump/bin/jsl。更多信息在这里
  4. 要检查 jsl 是否正常工作,请查找测试文件(在此处),然后输入命令jsl -process test.js。它应列出所有错误。
  5. 要自定义命令行,请将以下内容添加到您的vimrc文件中:set statusline=%{SyntasticStatuslineFlag()}
2个回答

2
你做了什么?哪些有效,哪些无效?有错误信息吗?
这是我所做的:
1. 从JavaScript Lint site下载了`jsl`源代码。 2. 构建了`jsl`并将其移动到我的`$PATH`中的某个位置。 3. 运行它来检查一个随机的`.js`文件是否能正常工作。 4. 下载并安装Syntastic作为Pathogen包。 5. 输入`:helptags /path/to/syntastic/doc`,因为出于某种原因,Pathogen的自动帮助标签生成对我不起作用。 6. 阅读Syntastic的文档:`:help syntastic`。
步骤1到5不会超过3或4分钟,也许更短。
步骤6是必须的,不管你尝试什么新工具。阅读使用手册。
我除了在我的`.vimrc`中配置这3行之外,没有配置任何东西(我相信第三行是多余的):
let g:syntastic_auto_loc_list=1
let g:syntastic_disabled_filetypes=['html']
let g:syntastic_enable_signs=1

并且通过以下方式自定义我的状态栏:
%{SyntasticStatuslineFlag()}

编辑

这是我的状态栏:

set statusline=%<\ %n:%f\ %m%r%y%{SyntasticStatuslineFlag()}%=line:\ %l\ of\ %L,\ col:\ %c%V,\ win:\ %{WindowNumber()}\ 

“不要逐字复制,否则由于最后的函数调用会出现一些错误。在Syntastic的帮助文档中有一个段落介绍这个问题。”
“编辑结束。”
“经过所有这些步骤,如果算上阅读文档的时间,大约需要10到12分钟,我现在拥有了一个非常有用的位置列表,并且每次保存具有语法错误的.js文件时都会弹出提示。”

我通过了第一步,但是如何构建它呢?没有配置文件、make文件,甚至连README文件(或者网站上的任何东西)都没有。 - puk
1
好的,我在src目录中找到了README文件,现在我需要安装一个名为“gmake”的命令。 - puk
%{SyntasticStatuslineFlag()} 放入您的状态栏中。请参见我的编辑。 - romainl
我同意这并不是非常容易或直接的。摆弄这个,黑客那个是我实际上过于喜欢的事情。大多数与增强Vim功能相关的内容往往非常hacky。 "黑客类型"喜欢它,但习惯于其他编辑器如NP ++或TextMate的其他用户可能会感到沮丧。 - romainl
哦,别太着急了。我不会说自己是一个黑客,我把这个称号留给比我更厉害的人。但作为一个想成为黑客的人,我建议尽可能少地修改Vim。然而,除了Syntastic之外,我会推荐使用SnipMate、Sparkup、Surround、Taglist或Tagbar以及VCSCommand。 - romainl
显示剩余4条评论

2

根据vundle的README设置vundle。

将以下内容放入您的.vimrc文件中:

Bundle 'scrooloose/syntastic'

然后在vim中输入以下命令:

:BundleInstall

这就是全部内容。
编辑:自从我最初编写此文以来,Vundle的语法已经改变。现在,您可以使用
Plugin 'scrooloose/syntastic'

然后输入。
:PluginInstall

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接