首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从插件获得的语法文件由Vim覆盖。

从插件获得的语法文件由Vim覆盖。
EN

Stack Overflow用户
提问于 2021-04-28 21:44:31
回答 1查看 110关注 0票数 0

我正在创建一个非常简单的插件,以便在Vim中更好地突出显示baan语法(基本上是语法/baan.vim的一个改进版本)。

这是我的插件目录。

baan.vim文件夹中的一个文件。它看起来像这样。

代码语言:javascript
复制
au BufRead,BufNewFile *.bc set filetype=baan

语法文件夹中的文件;baan.vim。在Vim中的语法文件夹中,它几乎与baan.vim相同。在语法高亮显示中使用一行更改。

我的问题是,当我打开任何带有.bc扩展名的文件时,会调用另外两个语法文件;一个在我自己的插件语法文件之前,另一个在后面。

我想,bc.vim语法文件已经从filetyp.vim调用了。因为我想设置的文件类型是带有扩展.bc的语法。这是第一个问题。第二,我将文件类型设置为“baan”,但Vim正在查找和查找所有baan.vim文件。但是,一旦baan.vim从myplugin获得资源,它仍在从Vim自己那里采购。如何在不使用/after目录的情况下很好地解决这些问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-29 05:19:51

这很正常。请考虑以下几点。

  1. $VIMRUNTIME/filetype.vim在接近尾声的时候提供了ftdetect/*.vim脚本。此时,setf bc已经被执行,第一个FileType事件被触发和处理。顺便说一下。这就是为什么迟来的set ft=baan起作用,但setf baan不再起作用的原因。但是,应该不是问题,因为:syn clear是在$VIMRUNTIME/syntax/synload.vim中自动执行的。不,除非您修补/替换filetype.vim.

,否则您不能对此做任何事情

  1. synload.vim有意获取所有匹配的文件(:runtime!)。这就是他们尊重b:current_syntax变量的原因。第一个设置它获胜,另一个通过在顶部执行:finish而让位。尽管如此,它们都是来源并进入:scriptnames。注意,这也意味着用after/syntax扩展现有语法(同时不尊重b:current_syntax)通常更可取。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67308336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档