如果我理解正确,您正在尝试查看在Python中生成的C代码中不匹配的括号,我建议您从
Dr Chip's Site安装rainbow.vim。 这将根据缩进级别以不同颜色突出显示大括号,并将如您所请求的那样用红色突出显示不匹配的大括号。 一个屏幕截图
http://img294.imageshack.us/img294/8586/rainbow.jpg http://img294.imageshack.us/img294/8586/rainbow.jpg
要安装,请下载
rainbow.vim
并放置在
vimfiles / after / syntax / c /
中(如果不存在,请创建此目录)。
在Linux上,这将是
~ / .vim / after / syntax / c / rainbow.vim
在Windows上,它可能是
c:\ vim \ vimfiles \ after \ syntax \ c \ rainbow.vim
或可能在其他地方,请参阅
:help runtimepath
。
请注意,有一些插件与
rainbow.vim
存在冲突,但是让它们合作并不太难。
如果您想在Python代码中突出显示不匹配的括号,可以修改rainbow.vim以使用Python语法集群而不是C语法集群,但这需要更多的工作,但是您可以使用类似于(Dr Chip的彩虹代码修改版)的东西:
syn cluster pyParenGroup contains=pythonString,pythonRawString,pythonEscape,pythonNumber,pythonBuiltin,pythonException
syn match pyParenError display ')'
syn region pyParen transparent matchgroup=hlLevel0 start='(' end=')' contains=@pyParenGroup,pyParen1
syn region pyParen1 transparent matchgroup=hlLevel1 start='(' end=')' contains=@pyParenGroup,pyParen2
syn region pyParen2 transparent matchgroup=hlLevel2 start='(' end=')' contains=@pyParenGroup,pyParen3
syn region pyParen3 transparent matchgroup=hlLevel3 start='(' end=')' contains=@pyParenGroup,pyParen4
syn region pyParen4 transparent matchgroup=hlLevel4 start='(' end=')' contains=@pyParenGroup,pyParen5
syn region pyParen5 transparent matchgroup=hlLevel5 start='(' end=')' contains=@pyParenGroup,pyParen6
syn region pyParen6 transparent matchgroup=hlLevel6 start='(' end=')' contains=@pyParenGroup,pyParen7
syn region pyParen7 transparent matchgroup=hlLevel7 start='(' end=')' contains=@pyParenGroup,pyParen8
syn region pyParen8 transparent matchgroup=hlLevel8 start='(' end=')' contains=@pyParenGroup,pyParen9
syn region pyParen9 transparent matchgroup=hlLevel9 start='(' end=')' contains=@pyParenGroup,pyParen
hi link pyParenError Error
if &bg == "dark"
hi default hlLevel0 ctermfg=red guifg=red1
hi default hlLevel1 ctermfg=yellow guifg=orange1
hi default hlLevel2 ctermfg=green guifg=yellow1
hi default hlLevel3 ctermfg=cyan guifg=greenyellow
hi default hlLevel4 ctermfg=magenta guifg=green1
hi default hlLevel5 ctermfg=red guifg=springgreen1
hi default hlLevel6 ctermfg=yellow guifg=cyan1
hi default hlLevel7 ctermfg=green guifg=slateblue1
hi default hlLevel8 ctermfg=cyan guifg=magenta1
hi default hlLevel9 ctermfg=magenta guifg=purple1
else
hi default hlLevel0 ctermfg=red guifg=red3
hi default hlLevel1 ctermfg=darkyellow guifg=orangered3
hi default hlLevel2 ctermfg=darkgreen guifg=orange2
hi default hlLevel3 ctermfg=blue guifg=yellow3
hi default hlLevel4 ctermfg=darkmagenta guifg=olivedrab4
hi default hlLevel5 ctermfg=red guifg=green4
hi default hlLevel6 ctermfg=darkyellow guifg=paleturquoise3
hi default hlLevel7 ctermfg=darkgreen guifg=deepskyblue4
hi default hlLevel8 ctermfg=blue guifg=darkslateblue
hi default hlLevel9 ctermfg=darkmagenta guifg=darkviolet
endif
编辑:
作为测试,我从
ftp://ftp.vim.org/pub/vim/pc/下载了
gvim70.zip和
vim70rt.zip(这些是Vim 7.0的Windows版本)。我将这两个文件解压到一个新目录中,并从
vim/vim70/gvim.exe
运行
gvim.exe
。我没有任何vim配置存储在“C:\Documents and Settings”中,因此运行此vim与运行“香草”配置相同。然后,我从
amk.ca/python/simple/pyprint.html下载了
pyprint.py
作为示例代码,并将上述代码复制到名为code.vim的文件中。在gVim中,我输入了
:e pyprint.py
。它在白色背景窗口中打开,没有语法高亮。然后,我输入了
:syntax on
,它切换了默认的语法高亮。我在第8行添加了第二个
)
字符。最后,我输入了
:source code.vim
,使第二个
)
字符变成红色高亮显示。
我也在Linux上进行了这个测试(使用Vim 7.2),输入以下命令序列:
cd ~
mv .vimrc old_dot_vimrc
mv .gvimrc old_dot_gvimrc
mv .vim old_dot_vim
vim pyprint.py
:e pyprint.py
" Add extra bracket here!
:syntax on
:source code.vim
再次,第二个括号被突出显示,其他内容似乎正常。