Следующая функция выведет как имя группы синтаксиса, так и переведенную группу синтаксиса символа, на котором находится курсор:
function! SynGroup()
let l:s = synID(line('.'), col('.'), 1)
echo synIDattr(l:s, 'name') . ' -> ' . synIDattr(synIDtrans(l:s), 'name')
endfun
Чтобы сделать это более удобным, его можно заключить в пользовательскийпривязка команды или ключа.
Как это работает:
line('.')
и col('.')
возвращают текущую позицию synID(...)
возвращает числовой синтаксис ID synIDtrans(l:s)
переводит числовой идентификатор синтаксиса l:s
по следующим ссылкам выделения synIDattr(l:s, 'name')
возвращает имя, соответствующее числовому идентификатору синтаксиса
Это будет эхочто-то вроде:
vimMapModKey -> Special