VIM:我如何知道关键字使用哪个突出显示规则?

时间:2011-10-25 17:41:04

标签: vim editor

:colorscheme default

文件类型是php。

任何人都可以帮我找出突出显示规则吗?

3 个答案:

答案 0 :(得分:5)

:hi[light]

将使用预览列出所有已定义的规则。您还可以查询单个项目:

:hi Keyword

要手动查找光标下的任何语法组,可以选择。我是一个像这样的关键函数:

" Show syntax highlighting groups for word under cursor
nmap <F2> :call <SID>SynStack()<CR>
function! <SID>SynStack()
    if !exists("*synstack")
        return
    endif
    echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')
endfunc

它将列出该词所属的每个语法组。

答案 1 :(得分:2)

我已经将以下片段隐藏了一段时间,不知道我从哪里拿到它。这会将statusline设置为显示光标下当前单词的高亮组:

:set statusline=%{synIDattr(synIDtrans(synID(line('.'),col('.'),1)),'name')}

这将在您移动文件时更新statusline

答案 2 :(得分:1)

我的_gvimrc中有类似的东西:

function! SyntaxBalloon()
    let synID   = synID(v:beval_lnum, v:beval_col, 0)
    let groupID = synIDtrans(synID)
    let name    = synIDattr(synID, "name")
    let group   = synIDattr(groupID, "name")
    return name . "\n" . group
endfunction

set balloonexpr=SyntaxBalloon()
set ballooneval