我有一个相当庞大的vim脚本(.vim文件,使用viml语法)。我希望检查(但不执行!)该文件是否存在简单的语法错误。
我该如何完成这个任务?
我只需要进行一个非常粗略的语法检查。类似于perl -c
或pyflakes
的东西。
我有一个相当庞大的vim脚本(.vim文件,使用viml语法)。我希望检查(但不执行!)该文件是否存在简单的语法错误。
我该如何完成这个任务?
我只需要进行一个非常粗略的语法检查。类似于perl -c
或pyflakes
的东西。
我不认为(尽可能确定)存在这样的工具。VimL是Vim(仅限于Vim)的内部语言,并且没有为其开发的许多工具。
我在vim.org和其他几个地方尝试搜索,但没有找到。这并不奇怪,因为我也从未听说过这样的工具。
因此,您要么只能运行脚本,要么切换到像Python、Perl或Ruby这样的外部语言。
https://github.com/osyo-manga/vim-watchdogs
Vim Watchdogs,显然是vim的语法检查器,它支持许多语言,包括vimL。
如果你使用Vundle,只需将以下内容添加到你的vimrc中:
Plugin 'git://github.com/osyo-manga/vim-watchdogs.git'
..然后运行:
:PluginInstall
..来设置它(Vundle是一个非常好用的插件管理器)。如果你有syntastic,你可能需要小心并先禁用它,然后看看它是否是一个合适的替代品(因为它声称支持所有这些语言)。
当你有多个语法检查器运行时,最好的方法是使其各自负责特定的语言。如果你不这样做,可能会导致冲突、重复或错误的指导。最糟糕的情况下,你会遇到以上所有问题和更多。
确保您始终备份您的~/.vim目录(或者如果您在全局层级上安装东西,则备份VIMRUNTIME目录),您会因此而感到非常高兴。希望这对您或其他人有所帮助,祝您好运!很抱歉您必须等待7.5个月才能得到回复,呵呵 :)
map
出现在哪一行,只要不在括号内部,它都被认为是一个命令。但当你把函数调用的开头放在一行上并使用行继续符时,会认为最后一个闭合括号是错误的,除非你在函数内部这么做。这样的错误还有更多例子:Vim 对 VimL 文件的语法高亮是我使用的其他语言中最糟糕的,所以我们绝不能完全依赖它。 - ZyX