给出以下简单的Makefile:
#Makiefile
ifeq(,)
else
endif
根据this,只需要包含这个matchit.vim文件就足够了,该文件可以在捆绑的插件中找到。
不幸的是,它不适合我。最初,我认为我的其他插件可能与matchit冲突。但是,vim的空设置也不起作用。根据matchit的文档,它需要b:match_words来循环它们。由于matchit.vim是一个全局插件,因此b:match_words在相应的文件类型插件中定义。在vim.vim中验证,可以在标准运行时目录中找到。
我错过了什么吗?
PS:现在,我必须将它添加到我当地的make.vim中才能使其正常工作。
#make.vim
let b:match_words='\<ifeq\>:\<else\>:\<endif\>'
答案 0 :(得分:2)
Makefile的文件类型为make
。在我最近的$VIMRUNTIME/ftplugin/make.vim
(日期为2006 Jun 17
)中,b:match_words
没有定义。
因此,您确实必须将定义添加到您自己的配置中,最好是~/.vim/after/ftplugin/make.vim
。
如果您认为这通常很有用并且默认情况下应该包含,您可以向脚本的维护者(Bram Moolenaar)发送补丁。
答案 1 :(得分:1)
@Ingo Karkat感谢您的信息。我已经把路径送到了Bram Moolenaar。希望它会出现在下一个版本中。如果有人急于求成,请尝试将其放入~/.vim/after/ftplugin/make.vim
。
" matchit.vim
if exists("loaded_matchit")
let b:match_words =
\ '\<if\(n\)\=\(eq\|def\)\>:\<else\>:\<endif\>,' .
\ '\<define\>:\<endef\>'
endif
PS:由于加载了vim脚本的顺序,在标准ftplugin之前加载了~/.vim/ftplugin
,所以如果只想在顶层构建ftplugin,最好将自定义的ftplugin放在~/.vim/after/ftplugin
目录中标准的ftplugin。
感谢@pevik修复丢失的逗号。不确定为什么更改被拒绝,但我手动添加了。