毫无疑问,Vim是一款功能强大的编程编辑器,但它是编辑器的插件,可以帮助您充分利用它。 在本文系列的第一部分 ,我们讨论了一些与程序有关的Vim插件(Tagbar和delimitMate)。 在本文中,我们将继续讨论另一个针对软件开发人员的有用的Vim插件 - Syntastic 。
请注意,本教程中提到的所有示例,命令和说明都已在Ubuntu 16.04上进行了测试,我们使用的Vim版本为7.4。
合成的
如果您的软件开发工作涉及使用C和C ++等语言,则无需说出解决编译时错误将成为日常工作的一部分。 很多时候,由于开发人员在查看代码时不能观察它们,因为源代码中使用的语法不正确导致编译错误。
如果我告诉你存在一个Vim插件,它提供了有关语法错误的信息,而无需编译代码呢? 是的,这样的插件存在,它的名字是Syntastic。
“ Syntastic是 Vim的 一个语法检查插件 ,它通过外部语法检查器运行文件,并向用户显示任何结果错误,可以按需完成,也可以自动保存文件,”插件的官方文档说。 “如果检测到语法错误,用户会被通知并且很高兴,因为他们不必编译代码或执行脚本来找到它们。”
这个插件的安装类似于我们安装第一部分讨论过的插件的方式 - 所有你需要做的是运行以下命令:
cd ~/.vim/bundle/
git clone https://github.com/scrooloose/syntastic.git
一旦插件成功安装(意味着上面的命令是成功的),你不必做任何事情 - 当Vim编辑器启动时它会自动加载。
现在,要使用插件,打开一个源代码文件并使用:w Vim命令保存。 经过短暂的暂停之后,您会发现代码中的语法错误(如果有的话)会被突出显示。 例如,以下屏幕截图应该让您了解插件如何突出显示错误:
行中的'>>'标志表示在该行中写入的代码有一些问题。 要知道错误是什么,或者至少得到一个粗略的想法,将光标移动到该行 - 错误描述将显示在Vim窗口的底部。
所以这样,你可以解决大多数语法相关的错误,甚至不编译代码。
继续,我运行:错误命令,将显示当前源文件中所有与语法相关的错误的描述。 例如,在我的案例中运行:Errors命令提出了以下信息:
请记住, 错误命令显示的信息不会自动刷新,这意味着即使在错误解决之后,它的描述将在底部区域,直到再次运行:Errors命令。
值得一提的是,有许多配置选项使Syntastic更加用户友好。 例如,如果您希望:Errors命令在每次解决错误时自动更新其输出,您可以将以下行放在.vimrc文件中:
let g:syntastic_always_populate_loc_list = 1
默认Syntastic行为的另一个主要限制是您必须运行:w命令才能获取插件来指示错误的行 - 这在编辑文件时可以,但是当您刚刚打开一个源文件。
为了确保在打开文件时Syntax会自动突出显示错误,请将以下行添加到.vimrc文件中:
let g:syntastic_check_on_open = 1
同样,如果您希望光标在保存或打开文件时跳转到首次检测到的问题,请将以下行放在.vimrc文件中:
let g:syntastic_auto_jump = 1
还有另外两个可以分配给上述变量的值:2和3.这些官方文档说明了这两个值:
“当设置为2时,光标将跳转到检测到的第一个问题,但只有当此问题是错误时,”和“当设置为3时,光标将跳转到检测到的第一个错误(如果有)。如果检测到所有问题都是警告,光标不会跳。“
以下资料也对您有用:
“使用:SyntasticCheck手动检查”错误。 “使用:错误打开位置列表窗口,并且:lclose关闭它,您可以使用:SyntasticReset清除错误列表,您可以使用:SyntasticToggleMode在活动(检查写缓冲区)和被动(手动)检查。“
注意 :Syntimate不仅限于用C和C ++编写的代码。 它还支持其他编程语言的巨大列表 - 在这里了解更多信息。
结论
毫无疑问, Syntastic是一个非常有用的Vim插件,因为它可以帮助您避免频繁编译的麻烦,至少在涉及语法相关的错误时。 而且更不用说你的时间很多也得到保存。
正如你所观察到的,一旦你配置了一些主要选项,Syntastic变得更加有用。 为了帮助您开始使用此功能,官方文档包含“推荐设置”部分 - 请执行此操作。 有一个很好的小常识问题部分,以防万一你遇到一些错误或有一些疑问或疑问。