我想更改我的vim配置文件,以便只突出显示我声明的变量,而不是关键字。本文展示并解释了我的意思:Alternate syntax highlighting
我是vim的初学者(我从未更改过默认配置文件)。 有人能指出我正确的方向吗?
答案 0 :(得分:4)
作为概念证明,我试过
let vars = ['init', 'editable', 'init_ui']
let colors = ['ff0000', '00ff00', '0000ff']
for var in vars
execute 'syn keyword var_' . var var
execute 'hi default var_' . var 'guifg=#' . remove(colors, 0)
endfor
它按预期工作。这为列表中的每个变量创建了语法项:var_init
,var_editable
和var_init_ui
。然后它为每个语法项指定一个突出显示颜色。
为了超越概念证明,您必须获得变量名称列表。您可以通过解析标记文件(例如,由ctags生成)或在vim中编写解析器(这将是非常可移植的)来完成此操作。您可以对列表进行排序并删除重复项,但我认为如果您跳过此步骤,使用:hi default
将为您节省时间。想出一种比我的例子更好的颜色生成方式。
当输入缓冲区或用户显式调用函数时,您可以使用自动命令执行所有操作。然后,您可以在定义新变量时开始考虑自动更新。
答案 1 :(得分:3)
Benjifisher的答案概述了如何实现这一点,但这仍然是一项重大努力,可能对初学者来说无法实现。但是,正如majkinetor在评论中所建议的那样,我的Mark plugin将允许您通过手动(取消)标记它们来快速为“有趣”变量名称设置不同的着色(默认映射为<Leader>m
,通常转换为 \ ,然后转换为 M 。我自己使用它来理解代码的复杂部分或对日志文件进行故障排除时。
使用~/.vimrc
中的以下命令,您最多可以使用77种不同的颜色:
let g:mwDefaultHighlightingPalette = 'maximum'
答案 2 :(得分:1)
有这样一个插件:https://github.com/jaxbot/semantic-highlight.vim
如果每个变量都是不同的颜色,那么Evan Brooks&#39;博客文章。