Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim:使用不同的颜色表示有图案的单词_Vim_Colors - Fatal编程技术网

Vim:使用不同的颜色表示有图案的单词

Vim:使用不同的颜色表示有图案的单词,vim,colors,Vim,Colors,我是一名硬件工程师,我使用嵌入式Ruby语言简化硬件verilog/system verilog代码的编写。在我的*.sv和*.v文件中,有许多ERB变量以“_uu”(双下划线)开头。例如,。有什么方法可以让vim以不同的颜色显示以双下划线开头的单词吗?您可以扩展内置的语法高亮显示。例如,将以下内容放入~/.vim/after/syntax/verilog.vim: syntax match verilogErbVar "\<__\w\+\>" hi link verilogErbV

我是一名硬件工程师,我使用嵌入式Ruby语言简化硬件verilog/system verilog代码的编写。在我的*.sv和*.v文件中,有许多ERB变量以“_uu”(双下划线)开头。例如,
。有什么方法可以让vim以不同的颜色显示以双下划线开头的单词吗?

您可以扩展内置的语法高亮显示。例如,将以下内容放入
~/.vim/after/syntax/verilog.vim

syntax match verilogErbVar "\<__\w\+\>"
hi link verilogErbVar Identifier
语法匹配verilogErbVar“\”
hi-link verilogErbVar标识符
这假设对应的文本片段还没有与原始语法匹配(在我的简短测试中,它们没有匹配)。否则,您需要找到包含它们的语法组,并向
:syntax
命令添加
containedin=…


找出导致突出显示的语法组<代码>:syn列表显示所有活动组,但安装插件时更容易。

持续还是临时?自动还是手动?对于每个.sv和.v文件,还是只是其中的一部分?你已经使用内置语法高亮显示了吗?@Ben:是的,我使用内置语法(我甚至对systemverilog文件也使用基于verilog的语法高亮显示)。如果我必须手动操作,我不介意,我可能可以映射它,并为每个文件单独执行。我希望双下划线字符以自定义颜色(绿色或其他颜色)显示,而不是突出显示单词,我认为这会使文件的大部分看起来是黄色的。谢谢回复。我把match弄得乱七八糟,我很得体地做到了:match Identifier/\uuw\+/
:match
的好处是它不会干扰语法突出显示;它总是在上面。糟糕的是它是窗口本地的,所以它不容易用Verilog文件“粘”到缓冲区。如果您不经常使用拆分/缓冲区/制表符,这可能对您来说是好的(或者不好)。我将它作为“autocmd BufNewFile,BufRead*.sv match Identifier/\uw\+/”放在我的vimrc文件中。这使它自动用于所有匹配*.sv.Yes的文件(您也可以使用
:autocmd FileType verilog
)。但是,请尝试
:拆分
,并查看第二个窗口中没有突出显示。我尝试了拆分,并使用我使用的autocmd在两个窗口中进行了突出显示。我有一个后续问题,我有一个erb代码,像这样“\u temp\u signal”…我使用了“匹配标识符//”。问题是它从第一个开始就突出显示,因此也突出显示了“temp_信号”。我如何使其突出显示个人组。谢谢