vim高亮显示:删除语法关键字

vim高亮显示:删除语法关键字,vim,Vim,我使用的一个vim插件可以: syn关键字rustTodo包含TODO FIXME XXX注意事项 导致在评论中突出显示NB,这是我不喜欢的。有没有办法重新定义关键字或从中删除关键字?查看:help syn关键字让我觉得这是不可能的。如果这是rustTodo的唯一定义(这些是累积的),您可以删除并重新定义它: syn clear rustTodo syn keyword rustTodo contained TODO FIXME XXX NOTE 不幸的是,删除语法项的粒度仅限于整个语法组(此

我使用的一个vim插件可以:

syn关键字rustTodo包含TODO FIXME XXX注意事项


导致在评论中突出显示
NB
,这是我不喜欢的。有没有办法重新定义关键字或从中删除关键字?查看
:help syn关键字
让我觉得这是不可能的。

如果这是
rustTodo
的唯一定义(这些是累积的),您可以删除并重新定义它:

syn clear rustTodo
syn keyword rustTodo contained TODO FIXME XXX NOTE
不幸的是,删除语法项的粒度仅限于整个语法组(此处:
rustTodo
);您不能选择单个关键字,除非它们也有单独的组(这将导致高亮组的链接更多,因此效率低下)

要使其永久化,请将其放入
~/.vim/after/syntax/rust.vim


如果您认为大多数用户不喜欢这里的
NB
,请建议作者将其删除。将其作为个人定制添加回去比删除它更容易维护…

从其他语法文件中导入语法文件时,我遇到了一个类似的问题,并提出了一个棘手的问题

而不是用

syn include @othersyntax syntax/othersyntax.vim
你可以用

syn include @othersyntax !sed 's/<NB>//' syntax/othersyntax.vim
syn include@othersyntax!sed的/syntax/othersyntax.vim

哎哟。这带来了严重的平台依赖性和安全问题,但至少减轻了您保持替换关键字列表与上游同步的负担。

您使用什么插件管理器?您可以尝试fork插件repo,应用补丁并在配置文件中连接fork。但这可能是矫枉过正。这不是一个真正的答案,只是一个变通办法。我也有同样的问题,这项工作对我来说是不可接受的。我真的需要删除一个现有的关键字。比如说“syn”!关键字rustTodo NB'(注意“!”)。这是可能的吗?after目录是专门为这种定制添加的,所以我认为它不仅仅是一种解决方法。一些更干净、更可维护的东西是可能的,但需要更改原始语法脚本(即定义配置变量,而不是硬编码关键字)。嗯,我的评论“不是真正的答案”更专业;)。如果你编辑你的答案并加上“不,这是不可能的(你能做的最好的是……”,那就是了。我现在还不清楚这是否可能(虽然这似乎不是我目前所读到的)。好吧,我似乎是一个不好的读者。标题中的问题是我需要什么,但OP明确地说“有没有一种方法可以重新定义关键词或者…”。不管是哪种方法,谢谢你的超快速回复;)!@CarloWood别担心。我已经扩展了我的答案,现在它更清晰了。