- 由于刚开始接触GVIM编辑器,在使用GVIM写Verilog代码的时候发现使用“%”命令可以实现配对括号之间的跳转,但其它的一些关键字之间却不能实现配对跳转,从而导致在代码量较大的时候常常会出现配对关键字多写或漏写的情况,很不方便。
- 网上查阅了相关资料后,发现可以使用GVIM自带的matchit插件来实现配对关键字之间的跳转功能,但是网上给出的方法及步骤过于笼统和简单,往往会让初学者不知所措。在经过多次的尝试与实验后,终于成功地实现了这一功能,这里给出详细的步骤。
- 总的来说,实现这个功能主要分两个步骤,第一个是安装matchit插件,第二个是定义所需的关键字配对关系。
一、安装matchit插件
- matchit插件是GVIM编辑器默认自带的一个插件,但是由于其默认不安装,故需要使用者自己去安装。安装方法如下:
1、打开GVIM编辑器的安装根目录,在搜索引擎处搜索“matchit”,GVIM的安装根目录一般是“xxx\Vim”处,如图:
2、由上图可见搜索得到的结果有两个,一个是“matchit.txt”,另一个是“matchit.vim”。接下来把“matchit.txt”复制到“xxx\Vim\vimfiles\doc”中去,其中的“xxx”会根据GVIM的安装路径而因人而异,可通过桌面图标右击并选中打开文件所在目录而得到,如图:
3、然后把“matchit.vim”复制到“xxx\Vim\vimfiles\plugin”中去,如图:
- 至此第一步操作就完成了。
二、自定义关键字的配对关系
1、使用GVIM编辑器打开“xxx\Vim”目录下的“_vimrc”文件,如图:
2、打开以后对“_vimrc”文件进行编辑,输入下面的语句即可完成关键字的配对,语句如下:
let b:match_words =
\ '\<begin\>:\<end\>,' .
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
\ '\<module\>:\<endmodule\>,' .
\ '\<if\>:\<else if\>:\<else\>,' .
\ '\<function\>:\<endfunction\>,' .
\ '`ifdef\>:`else\>:`endif\>,' .
\ '\<task\>:\<endtask\>,' .
\ '\<program\>:\<endprogram\>,' .
\ '\<specify\>:\<endspecify\>'
let b:match_ignorecase = 1
- 如图所示,第一个代码片是用来设置自定义配对关键字的,每一行都设置了需要配对跳转的关键字,如第一行是“begin”与“end”,第二行是“case/casex/casez”与“endcase”之间的配对等。
- 第二个代码片则是用来设置关键字之间的配对是不区分大小写的,倘若要区分大小写,则只需要将该语句的“1”改成“0”即可。
3、可以直接在“_vimrc”文件的首位置进行添加,具体的添加界面如下:
三、实现的效果
- 最终效果如下,当光标在文本的“begin”处时,按下“%”便会自动跳转到“end”处,方便了我们的编程: