Если я правильно понимаю, и вы пытаетесь взглянуть на несовпадающие скобки в C-коде (который был сгенерирован в python), я бы порекомендовал вам установить rainbow.vim из Dr Chip's Site . Это выделит фигурные скобки разными цветами в зависимости от уровня отступов и выделит непревзойденные фигурные скобки красным, как вы и просили. Скриншот 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, но это немного сложнее, но вы можете использовать что-то вместе строки (модифицированная версия радужного кода доктора Чипа):
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
EDIT:
В качестве теста я скачал gvim70.zip и vim70rt.zip с ftp: //ftp.vim.org/pub/vim/pc/ (это версии Vim 7.0 для Windows). Я распаковал два файла в новый каталог и запустил gvim.exe
из vim/vim70/gvim.exe
. У меня нет никакой конфигурации vim, хранящейся в "C: \ Documents and Settings", поэтому запуск этого vim аналогичен запуску конфигурации vanilla. Затем я скачал pyprint.py
из amk.ca / python / simple / pyprint.html в качестве примера кода и скопировал приведенный выше код в файл с именем 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
Опять подсвечивается вторая скобка, а все остальное кажется нормальным.