我正在研究一个小的vim插件,它应该突出显示光标空闲后的当前单词出现次数.我有一个重点部分,我需要检查当前单词是否不是C/C++关键字.
您可以根据当前语法高亮脚本执行此操作.也就是说,如果你的光标在某些访问修饰符(该函数返回public,protected等),或者一些C++类型(比如,bool等):
function! IsCppAccessOrType()
   return match(synIDattr(synID(line("."), col("."), 1), "name"), '\v\CcppAccess|cppType') >= 0
endfunction
但是,这将完全取决于当前的语法脚本.以上示例取决于syntax/cpp.vimVim 7.3提供的标准.
顺便说一句,处理语法高亮的东西是非常有用的技巧:
" Show syntax highlighting groups for word under cursor 
nnoremap <silent> <F10> :call <SID>SynStack()<CR>
function! <SID>SynStack()
   if !exists("*synstack")
      return
   endif
   echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')
endfunc
将此添加到您的vimrc,当您按下时F10,将回显堆栈的语法项(:help synstack有关详细信息,请参阅参考资料).
我在http://vimbits.com上找到了这个技巧.