Ответ 1
Если я правильно понял и вы пытаетесь посмотреть на несовпадающие скобки в C-коде (который был сгенерирован на python), я бы порекомендовал вам установить rainbow.vim из Сайт Dr Chip. Это будет отображать фигурные скобки разных цветов в зависимости от уровней отступов и будет выделять красные фигурные скобки красным цветом, как вы просили. Снимок экрана 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=')' [email protected],pyParen1
syn region pyParen1 transparent matchgroup=hlLevel1 start='(' end=')' [email protected],pyParen2
syn region pyParen2 transparent matchgroup=hlLevel2 start='(' end=')' [email protected],pyParen3
syn region pyParen3 transparent matchgroup=hlLevel3 start='(' end=')' [email protected],pyParen4
syn region pyParen4 transparent matchgroup=hlLevel4 start='(' end=')' [email protected],pyParen5
syn region pyParen5 transparent matchgroup=hlLevel5 start='(' end=')' [email protected],pyParen6
syn region pyParen6 transparent matchgroup=hlLevel6 start='(' end=')' [email protected],pyParen7
syn region pyParen7 transparent matchgroup=hlLevel7 start='(' end=')' [email protected],pyParen8
syn region pyParen8 transparent matchgroup=hlLevel8 start='(' end=')' [email protected],pyParen9
syn region pyParen9 transparent matchgroup=hlLevel9 start='(' end=')' [email protected],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/ (это версии Windows Vim 7.0). Я распаковал два файла в новый каталог и запустил 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
Опять же, вторая скобка выделена, и все остальное выглядит нормально.