Vim变量语法高亮显示

时间:2014-01-27 14:33:17

标签: vim syntax syntax-highlighting highlight vim-syntax-highlighting

我想更改我的vim配置文件,以便只突出显示我声明的变量,而不是关键字。本文展示并解释了我的意思:Alternate syntax highlighting

我是vim的初学者(我从未更改过默认配置文件)。 有人能指出我正确的方向吗?

3 个答案:

答案 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_initvar_editablevar_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;博客文章。