С помощью этой функции в вашем .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
на один и тот же цвет в моей схеме цветов, чтобы иметь согласованный вид.