普通vim用户可能不知道vim8带来的变化对自己日常使用vim有什么影响,他们依然在需要编辑的时候打开vim,在需要运行命令的时候打开新的窗口或者将vim放到后台或者用!cmd
来运行,无论哪一种,都需要中断编辑,这样严重影响了效率。
所以今天要给大家介绍几个利用了vim8新特性的插件。
异步语法检查
语法检查的本质是调用特定编程语言的工具对源文件进行语法分析然后将结果反馈出来。
这也就意味着需要调用外部命令,vim8以前是不可能实现的,vim8带来异步的api,然后实施异步分析语法成为了可能。
neomake本质就是多任务异步运行外部工具,然后将这些工具分析的结果反馈带quickfix和侧边栏中。
我就在这个插件的基础上,制作了一个多命令异步运行,异步搜索多插件:
特性:
1,你可以一边编辑,一边全局搜索,利用像grep,ag和rg这样的搜索工具,等到搜索完毕的时候,自动将结果在vim的quickfix窗口中显示。
2,你可以异步运行任何命令,命令的输出将显示在quickfix窗口中
使用场景:
很多人用ctags或者cscope来进行代码跳转,当你的代码比较多的时候,这两个工具生成数据库的过程是比较久的,这个时候你就可以用neomake-multiprocess提供的函数接口调用cscope或者ctags命令,与此同时,你仍然可以继续编辑。
具体可看仓库的readme,有什么不懂,可以在仓库提issue。
neomake-multiprocess与其它类似插件的对比:
asyncrun.vim是其中比较受欢迎的插件,功能与neomake-multiprocess类似,但是它有一个明显的缺点就是无法多任务运行,虽然也是异步运行,但是必须等待当前任务运行完毕。
所以neomake-multiprocess具有碾压的优势,欢迎尝试,star。