gpt4 book ai didi

Vim 脚本 : check if the current word is/isn't a C/C++ keyword

转载 作者:行者123 更新时间:2023-12-04 15:54:51 27 4
gpt4 key购买 nike

我正在开发一个小的 vim 插件,它应该在光标空闲后突出显示当前出现的单词。我有一个高亮部分,我需要的是检查当前单词是否不是 C/C++ 关键字。

最佳答案

你可以根据当前的语法高亮脚本来做到这一点。例如,如果您的光标位于某些访问修饰符(publicprotected 等)或某些 C++ 类型(例如,bool),则此函数返回等):

function! IsCppAccessOrType()
return match(synIDattr(synID(line("."), col("."), 1), "name"), '\v\CcppAccess|cppType') >= 0
endfunction

但是,同样,这将完全取决于当前的语法脚本。上面的示例取决于 Vim 7.3 提供的标准 syntax/cpp.vim


顺便说一下,有一个非常有用的技巧可以处理语法高亮:

" 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 的某个地方发现了这个技巧.

关于Vim 脚本 : check if the current word is/isn't a C/C++ keyword,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15018520/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com