首页 > 解决方案 > 将当前颜色保存为 vim 中的可加载颜色方案

问题描述

如何将当前颜色保存到可:colorscheme在 vim 中加载的文件中?

:hi向我显示颜色,但不是以可加载为配色方案的形式。

标签: vim

解决方案


您需要的成分::h getcompletion() :h hlID() :h synIDattr():h synIDtrans()

从获取所有高亮组名称开始:let names = getcompletion('', 'highlight').

获取数字 ID:let id = hlID(name)let tid = synIDtrans(id)

如果id != tid那么它是一个“链接”组,那么命令是printf('hi link %s %s', name, synIDattr(tid, 'name'))

否则,您必须查询所有可能的组合,synIDattr(id, what, mode)然后编写一个命令hi <name> <non-empty-attrs>。因为它看起来像是一项特别乏味的任务,所以它“留给读者作为练习”;-)

在 Vim 中将脚本输出放入缓冲区很简单:new然后call append('$', printf(...))等等。小心不要忘记在你的“配色方案脚本”之上添加一个“标准序言”(hi clear和其他东西),否则颜色会与现有的颜色混淆。


推荐阅读