Как я могу изменить свой Vim vimrc, чтобы он знал, когда я печатаю переменную PHP и соответствует цвету? - PullRequest
2 голосов
/ 14 октября 2010

При использовании Vim мой цветовой синтаксис теперь такой, когда я печатаю в $, он отображается желтым, а когда я пишу текст - белым.Как я могу настроить свой vimrc, чтобы он знал, когда я пишу переменную PHP ($ variable), и чтобы цвет соответствовал между $ и словами после него (переменная в моем примере)?Это просто неприятность, но я ненавижу видеть имена переменных с несоответствующим цветом, это сводит меня с ума.

Ответы [ 4 ]

2 голосов
/ 14 октября 2010

Возможно, вы захотите получить это, чтобы решить вашу проблему: http://www.vim.org/scripts/script.php?script_id=1571

1 голос
/ 07 апреля 2013

Для вас есть другой метод, если вы хотите отобразить какой-то пользовательский цвет для некоторых классов, методов и т. Д.

Прежде всего, скачайте php.vim .

затем запустите тест Highlight в Gvim, вы получите несколько ключевых слов, таких как:

htmlTagN    htmlTagN
htmlBoldUnderline   htmlBoldUnderline htmlUnderlineBold
htmlBoldItalic  htmlBoldItalic htmlItalicBold
htmlBold    htmlBold
htmlBoldUnderlineItalic htmlBoldUnderlineItalic htmlBoldItalicUnderline htmlUnderlineBoldItalic htmlUnderlineItalicBold htmlItalicBoldUnderline htmlItalicUnderlineBold
htmlUnderlineItalic htmlUnderlineItalic htmlItalicUnderline
htmlUnderline   htmlUnderline
htmlItalic  htmlItalic
cssStyle    cssStyle
javaScriptCommentSkip   javaScriptCommentSkip
javaScriptParens    javaScriptParens
javaScriptValue javaScriptValue javaScriptNumber
cssDefinition   cssDefinition
cssAttributeSelector    cssAttributeSelector
cssMediaBlock   cssMediaBlock
cssFontDescriptorBlock  cssFontDescriptorBlock
cssPseudoClass  cssPseudoClass
cssSpecialCharQQ    cssSpecialCharQQ
cssSpecialCharQ cssSpecialCharQ
cssLength   cssLength
cssString   cssString
phpRegion   phpRegion
phpRegionAsp    phpRegionAsp
phpRegionSc phpRegionSc
phpIdentifierComplex    phpIdentifierComplex
phpMethodsVar   phpMethodsVar
phpLabel    phpLabel
phpFoldTry  phpFoldTry
phpFoldCatch    phpFoldCatch
NONE    NONE
phpStructureHere    phpStructureHere
phpMemberHere   phpMemberHere
phpMethodHere   phpMethodHere
phpPropertyHere phpPropertyHere
phpTernaryRegion    phpTernaryRegion
phpHereDoc  phpHereDoc
phpSpecialCharfold  phpSpecialCharfold
phpPropertyInString phpPropertyInString
phpIdentifierInString   phpIdentifierInString
phpIdentifierInStringComplex    phpIdentifierInStringComplex
phpIdentifierInStringErratic    phpIdentifierInStringErratic
phpErraticBracketRegion phpErraticBracketRegion
phpStaticUsage  phpStaticUsage
phpStaticAccess phpStaticAccess
phpStaticVariable   phpStaticVariable
phpStaticCall   phpStaticCall
phpForeachRegion    phpForeachRegion
phpForRegion    phpForRegion
phpConstructRegion  phpConstructRegion
phpSwitchConstructRegion    phpSwitchConstructRegion
phpDoBlock  phpDoBlock
phpSwitchBlock  phpSwitchBlock
phpDoWhileConstructRegion   phpDoWhileConstructRegion
phpStatementRegion  phpStatementRegion
phpCaseRegion   phpCaseRegion
phpArrayRegion  phpArrayRegion
phpArrayRegionSimple    phpArrayRegionSimple
phpArrayComma   phpArrayComma phpListComma phpPREGArrayComma
phpListRegion   phpListRegion
phpBlockRegion  phpBlockRegion
phpParentRegion phpParentRegion
phpBracketRegion    phpBracketRegion
phpFoldFunction phpFoldFunction
phpFoldClass    phpFoldClass
phpFoldInterface    phpFoldInterface
htmlRegion  htmlRegion
phpDefineClassName  phpDefineClassName
phpDefineClassImplementsName    phpDefineClassImplementsName
phpDefineClassImplementsComma   phpDefineClassImplementsComma
phpDefineClassImplementsCommentOneLine  phpDefineClassImplementsCommentOneLine
phpClassBlock   phpClassBlock
phpDefineClassBlockCommentOneline   phpDefineClassBlockCommentOneline
phpDefineInterfaceName  phpDefineInterfaceName
phpDefineFuncName   phpDefineFuncName
phpDefineFuncProto  phpDefineFuncProto
phpProtoArray   phpProtoArray
phpDefineFuncBlockCommentOneline    phpDefineFuncBlockCommentOneline
phpFuncBlock    phpFuncBlock
phpDefineMethodName phpDefineMethodName
phpTryBlock phpTryBlock
phpCatchRegion  phpCatchRegion
phpCatchBlock   phpCatchBlock
phpFoldHtmlInside   phpFoldHtmlInside
phpEchoRegion   phpEchoRegion
phpClassStart   phpClassStart
phpSyncStartOfFile  phpSyncStartOfFile
phpSyncComment  phpSyncComment
phpSyncString   phpSyncString
phpRegionSync   phpRegionSync
pregConcat  pregConcat
pregClassEscapeMainQuote    pregClassEscapeMainQuote
pregClassEscapeDouble2  pregClassEscapeDouble2
pregEscapeMainQuote pregEscapeMainQuote
phpPREGRegion   phpPREGRegion
phpPREGOpenParentMulti  phpPREGOpenParentMulti
phpPREGRegionMulti  phpPREGRegionMulti
phpPREGStringStarter    phpPREGStringStarter
phpPREGArrayRegion  phpPREGArrayRegion
phpPREGArrayOpenParent  phpPREGArrayOpenParent
pregNonSpecialEscape    pregNonSpecialEscape

, вот оно, вы можете изменить ключевые слова для вашего php-файла, добавить некоторые настройки в ваш vimrc, например:

hi        TabLine        guifg=#1C1D1F          guibg=#BFBFBF           gui=NONE 

'TabLine' можно заменить по ключевым словам. guifg - это fore-color, guibg - это цвет фона, gui - это цвет терминала. Вы можете настроить его самостоятельно.

0 голосов
/ 19 марта 2011

С помощью этой функции в вашем .vimrc вы можете нажать ctrl + p , чтобы показать синтаксическую группу слова / символа под курсором:

function! <SID>SynStack()
    if !exists("*synstack")
        return
    endif
    echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')
endfunc
nnoremap <C-p> :call <SID>SynStack()<CR>

С этим примером кода PHP:

$var_name = false;

если курсор находится на $, я получаю:

['phpRegion', 'phpIdentifier', 'phpVarSelector']

иначе, если курсор находится на n из name, я получаю:

['phpRegion', 'phpIdentifier']

, что означает, что мне нужно установить оба phpIdentifier и phpVarSelector на один и тот же цвет в моей схеме цветов, чтобы иметь согласованный вид.

0 голосов
/ 14 октября 2010

Я считаю, что вы ищете:

hi link phpIdentifier phpVarSelector

Вы можете просто добавить это в свой ~/.vimrc файл или создать php-специфичный синтаксис "после" и добавить его туда:

~/.vim/after/syntax/php.vim

Создайте каталоги, если они еще не существуют.

Для будущих изменений выделения можно использовать это отображение , чтобы выяснить, какая группа синтаксиса находится под курсором.

...