我使用标签文件&amp ;;突出显示了所有符号。突出选项。
但我无法突出显示我的局部变量。
我有一个想法,就是说,VIM已经支持为当前文件自动完成关键字,它会自动完成我的本地变量,所以,如果我得到当前文件的关键字列表,那么我将突出显示这些关键字使用“highlight”vim命令。
但问题是,我不知道如何获取当前文件的关键字列表。
答案 0 :(得分:1)
只要使用--c-kinds=+l
生成标记文件,您就可以使用标记文件突出显示已识别的名称,以确保它包含局部变量。但是,目前还没有现实的方法来确定这些变量的范围(ctags没有提供太多信息),因此Vim不会区分一个函数和另一个函数中的变量:
void main(void)
{
int MyVariable; // Highlighted
}
int MyFunction(void)
{
int MyFunctionVariable; // Highlighted
MyVariable = 1; // Syntax error, but still highlighted
}
可以通过更详细地解析C文件并为每个函数创建语法区域来完成,但这很容易(并且它与rainbow.vim之类的插件不兼容,因为Vim没有支持重叠区域。)
在相关说明中,您可能还对我的标记突出显示插件available here感兴趣。它将突出显示局部变量(如果b:TypesFileIncludeLocals
在运行1
时打开的缓冲区中设置为:UpdateTypesFile
,但它不处理局部变量的范围。然而,与:help tag-highlight
中建议的突出显示相比,它确实提供了更多突出显示的颜色变化。请注意,您的配色方案必须为许多额外的组定义突出显示(例如GlobalVariable
,LocalVariable
,DefinedName
等)才能充分利用它。