开发者的实用 Vim 插件(二)
毫无疑问,Vim 是一个开箱即用并能够胜任编程任务的编辑器,但实际上是该编辑器中的插件帮你实现这些方便的功能。在 开发者的实用 Vim 插件(一),我们已经讨论两个编程相关的 Vim 插件——标签侧边栏(Tagbar)和定界符自动补齐(delimitMate)。作为相同系列,我们在本文讨论另一个非常有用、专门为软件开发正定制的插件——语法高亮插件。
请注意:本教程中列举的所有例示、命令和说明都是在 Ubuntu 16.04 环境下进行测试的,并且,我们使用的 Vim 版本是 7.4。
语法高亮(Syntastic)插件
假如你的软件开发工作涉及到 C/C++ 语言,毫无疑问的说,遇到编译错误也是你每天工作中的一部分。很多时候,编译错误是由源代码之中的语法不正确造成的,因为开发者在浏览源码的时候很少能够一眼就看出所有这些错误。
那么 Vim 中是否存在一种插件可以让你不经编译源码就可以显示出语法错误呢?当然是有这样一种插件的,其名字就是 Syntastic。
“Syntastic 是 Vim 用来检验语法的插件,通过外部语法校验器校验文件并将错误呈现给用户。该过程可以在需要时进行,或者在文件保存的时候自动进行。”该插件 官方文档 如是说。“如果检测到语法错误就会提示用户,因为不用编译代码或者执行脚本就可以知道语法错误,用户也就乐享与此了。”
安装过程和第一部分提到的方法类似,你只需要运行下列命令即可:
cd ~/.vim/bundle/
git clone https://github.com/scrooloose/syntastic.git
一旦你成功安装这个插件(即上述命令执行成功),你就不需要进行任何配置了——当 Vim 启动时会自动加载这个插件。
现在,打开一个源码文件并用 :w
Vim 命令保存即可使用这个插件了。等待片刻之后,如果在源码中有语法错误的好,就会高亮显示出来。比如,看看一下截图你就会明白该插件是如何高亮显示语法错误的:
Vim Syntax error highlighting
在每行之前的 >>
表示该行中有语法错误。了解确切的错误或者想知道是什么东西错了,将光标移到该行——错误描述就会展示在 Vim 窗口的最底下。
View Syntax errors in Vim
这样,不用进行编译你就能够修复大多数语法相关的错误。
再往下,如果你运行 :Errors
命令,就会展现当前源文件中所有语法相关错误的描述。比如,我运行:Errors
命令就是下图的效果:
Syntastic :Errors command
请记住,:Errors
展现的语法错误是不会自动更新的,这意味着在你修复错误之后,你需要重新运行:Errors
命令,编辑器底部的错误描述才会消除。
值得一提的是,还有 许多配置选项 能够使得 Syntastic 插件使用起来更加友好。比如,你可以在你的 .vimrc
中添加下列内容,然后 :Errors
就可以在修复错误之后自动更新它的底部描述。
let g:syntastic_always_populate_loc_list = 1
添加以下内容,以确保在你打开文件时 Syntastic 插件自动高亮显示错误。
let g:syntastic_check_on_open = 1
类似的,你也可以在保存或打开文件时让光标跳转到检测到的第一个问题处,将下列行放到你的 .vimrc
文件之中:
let g:syntastic_auto_jump = 1
这个值也可以指定为其它两个值: 2 和 3,其官方文档的解释如下:
“如果设置为 2 的话,光标就会跳到检测到的第一个问题,当然,只有这个问题是一个错误的时候才跳转;设置为 3 的话,如果存在错误,则会跳到第一个错误。所有检测到的问题都会有警告,但光标不会跳转。”
以下信息可能对你有帮助:
“使用 :SyntasticCheck
来手动检测错误。使用 :Errors
打开错误位置列表并使用 :lclose
来关闭。使用:SyntasticReset
可以清除掉错误列表,使用 :SyntasticToggleMode
来切换激活(在写到 buffer 时检测)和被动(即手动检测)检测错误。”
注意:Syntastic 并不局限于 C/C++ 所写的代码,它同时也支持很多的编程语言——点击 此处 了解更多相关信息。
结论
毫无疑问的,Syntastic 是一个非常有用的 Vim 插件,因为在出现语法相关错误时候,它至少能够让免去频繁编译的麻烦,而且不用说,同时也节约了你不少的时间。
正如你所看到的一样,配置好几个主要选项之后,Syntastic 变得非常好用了。为了帮助你了解这些设置,官方文档中包含了一份“推荐设置”——跟着文档进行设置即可。加入你遇到一些错误、有些疑问或者问题,你也可以查询一下 FAQ。
原文发布时间为:2017-11-28
本文来自云栖社区合作伙伴“Linux中国”
开发者的实用 Vim 插件(二)相关推荐
- 开发者的实用 Vim 插件(一)
作为 Vi 的升级版,Vim 毫无争议是 Linux 中最受欢迎的命令行编辑器之一.除了是一个多功能编辑器外,世界各地的软件开发者将 Vim 当做 IDE(集成开发环境Integrated Devel ...
- 【开发者portal在线开发插件系列二】多条上下行消息(messageId的使用)
前言和基本操作请参考[开发者portal在线开发插件系列一]profile和基本上下行消息,此处不再复述,没操作过的小伙伴一定要先去看看哦~ 话不多说,开始今天的演(表)示(演) 场景说明: 假设一: ...
- 5 个好用的开发者 Vim 插件
(给程序员的那些事加星标) 英文:Ricardo Gerardi,翻译:Linux中国/pityonline linux.cn/article-10563-1.html 我用 Vim 已经超过 20 ...
- Vim使用(二)——插件管理器vundle及nerdtree和ctags插件
文章目录 一.vim插件管理器. 1.1 安装步骤 1.2 使用方式 二.ctags插件的安装 2.1 安装步骤: 2.2 使用方式: 一.vim插件管理器. 插件管理器可以方便管理vim插件的安装. ...
- 【PC工具】chrome插件:n多好用实用chrome插件
chrome就不介绍了,最好用最干净最良心的浏览器,没有之一,非常非常好的浏览器,各种特点不介绍了,用过的都说好,今天介绍几个很常用很实用的插件: 1.markdown-here 可以在网页版QQ邮箱 ...
- 分享百度网盘下载搜索神器和一些实用浏览器插件
前段时间(端午节期间)折腾电脑,用虚拟机安装mac 10.13,但安装包太大,6.5G. 顺便放下我安装时参考的链接,说不定有人也想安装mac试试,不过我试验的是安装后比较卡.验证在vm12下安装os ...
- 7 款优秀 Vim 插件帮你打造完美 IDE!
公众号关注 "GitHubDaily" 设为 "星标",每天带你逛 GitHub! 集成开发环境(IDE,Integrated Development Envi ...
- vim插件的安装方式 -- vim注释插件和doxygen函数注释生成插件-ctrlp插件-tabular等号对齐 插件...
使用unzip的时候 指定 -d选项, 是说明解压到的 目标地址. 这个参数还是比较方便的, 比直接unzip到当前目录, 然后在去拷贝到目标目录, 然后再删除当前目录中的解压文件夹, 方便多了. 使 ...
- vim 插件_Vim自动生成tags插件vim-gutentag使用方法
在常规的使用ctags生成tag标签文件实现跳转的方式下,每次需要更新tags文件时都需要手工运行 ctags -R 生成当前项目所有源文件对应的tag标签文件. 当工程文件多.文件更新频繁时,上述生 ...
- 这款 20 万开发者使用的开发插件到底经历了什么?
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 导读:涉及开发的技术人员,永远绕不开的就是将应用部署到相 ...
最新文章
- CentOS 6.0安装RPMforge源
- 灰度重心法原理与实现
- AJAX的异步请求小例子
- [原]调试实战——程序CPU占用率飙升,你知道如何快速定位吗?
- failed to keep to the max pss of 66560
- 3-5:常见任务和主要工具之归档和备份
- mysql i优化_mysql优化 - ifeixiang的个人页面 - OSCHINA - 中文开源技术交流社区
- ESP分区重建,解决各种引导问题
- 263. Ugly Number
- 2000W条数据的Oralce数据库SQL查询优化经验 - 机会总会留给有准备的人
- J2SDK的安装历程
- 安装RSF自动化环境
- 讯时后台编辑器在IE8下无法打开窗口的解决办法
- 植物大战僵尸自动拾取阳光
- python能开发公众号吗_python如何编写公众号
- glog使用-查看LOG
- oracle buys,Aconex - Logiciel de contrôle des projets de construction | Oracle France
- 【Android -- 写作工具】Markdown 分割线
- w10计算机配置在哪看,win10如何查看电脑配置参数(一招查看电脑配置好坏)
- 闪送、水滴筹、美团、京东、百度java面试题总结
热门文章
- 获取cookie_XSS获取COOKIE
- 如何检测java安装成功_如何检查jdk是否安装成功
- gin mysql_golang+gin+mysql构建RESTful API
- Pytorch:GPU版代码改成CPU版(RuntimeError: torch.cuda.FloatTensor is not enabled.)
- android音频杂音问题_如何消除音频中的噪声?用这个简单好用的音频剪辑软件就够了...
- vc 获得桌面文件坐标_为何 Elementary OS 中使用 Pantheon 桌面
- 彭怀湘:金融与大数据相约互联网+时代
- 学习Linux的决心书
- 前言:设计模式六大原则
- Java设计模式——建造者模式