vim默认没有systemverilog语法高亮,需要自己设置。网上不少方法,进行了总结。
1)linux系统
linux系统是多用户系统,可以在系统配置文件中设置,设置对每个用户都生效。也可以在/home/用户名目录下设置,只对本用户有效(服务器场景)。
方法1:.系统配置文件(需root权限)
系统的语法配置路径在:/usr/share/vim/vim72/syntax
在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。
---> 将systemverilog.vim 复制到usr/share/vim/vim72/syntax目录下
---> 在/etc/.vimrc中添加 au BufRead,BufNewFile *.sv set filetype=systemverilog
方法2:单用户配置
--->在/home/用户目录下,创建.vim隐藏文件夹。
--->在.vim隐藏文件下,创建一个syntax文件夹
---->将将systemverilog.vim 复制到syntax目录下
--->cd ~进入/home/用户目录,在用户目录下,创建一个.vimrc文件
在.vimrc中设置
set cursorline " 突出显示当前行
set ruler " 打开状态栏标尺
au BufRead,BufNewFile *.sv set filetype=systemverilog
--->source .vimrc
注: bshell 可能会报错,但是命令生效了,具体原因,研究不深。
2)windows系统 ,
gvim设置,windows不能对列操作,ctrl+v无效。设置相同的道理。
3)systemverilog.vim 文件
参考http://blog.sina.com.cn/s/blog_629e6a3e01010eox.html
" Vim syntax file
" Language: SystemVerilog
" Maintainer: Stephen Hobbs <[email protected]>
" Last Update: Wed Jun 14 15:56:00 BST 2006
" Built on verilog.vim from vim63
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Set the local value of the 'iskeyword' option
if version >= 600
setlocal iskeyword=@,48-57,_,192-255
else
set iskeyword=@,48-57,_,192-255
endif
" Taken from the SystemVerilog 3.1a Annex B:
syn keywo