vim因其强大的扩展性一直深受linux程序员的喜爱,最近在用vim写verilog的时候,由于一个逻辑块中的begin end较多,常常会多写或者漏掉匹配关键字,很是苦恼,于是寻找匹配关键字间跳转的方法,发现matchit可以用%在关键字之间实现跳转,还可以自定义更多的关键字,相当方便。

以下正片:

1、安装 matchit插件

  matchit 插件是vim默认自带的,但是不安装。安装方法可以在vim 的help里查看:

  • $ vi     打开一个空白文件
  • :help matchit-install

  就能看到安装步骤了,打开terminal:

  • $ mkdir ~/.vim
  • $ mkdir ~/.vim/plugin
  • $ cp $VIMRUNTIME/macros/matchit.txt ~/.vim/plugin($VIMRUNTIME可能没有。可以在vim里 :echo $VIMRUNTIME来查看路径)

2、定义所需关键字

  定义关键字主要是给 |b:match_words| 定义一个合适的模板,在.vimrc文件中定义模板就行。

  • 打开 ~/.vimrc
  • 下面是我的配置:
let b:match_word='\<begin\>:\<end\>,'
\ . '\<while\>:\<continue\>:<break\>:\<endwhile\>,'
\ . '\<if\>:\<else if\>:<else\>,'
\ . '\<module\>:\<endmodule\>,'
\ . '\<task\>:\<endtask\>,'
\ . '\<function\>:\<endfunction\>,'
\ . '\<program\>:\<endprogram\>'
let b:matchit_ignorecase= "开启 忽略大小写

  其中 let b:match_ignorecase = 1 为忽略大小写,如begin可以匹配到END

设置完成后,在关键字如begin上按%,光标就会跳转到与之匹配的end上,灰常慌便

vim matchit 自定义配对关键字之间的跳转的更多相关文章

  1. 使用自定义 URL 实现控制器之间的跳转-b

    一个app往往有很多界面,而界面之间的跳转也就是对应控制器的跳转,控制器的跳转一般有两种情况 push 或者 modal,push 和 modal 的默认效果是系统提供的 文章配图 1. 概述 系统提 ...

  2. [知了堂学习笔记]_用JS制作《飞机大作战》游戏_第2讲(四大界面之间的跳转与玩家飞机的移动)

    一.通过点击按钮事件,实现四大界面之间的跳转: (一)跳转的思路: 1.打开软件,只显示登录界面(隐藏游戏界面.暂停界面.玩家死亡界面) 2.点击微信登录(QQ登录)跳转到游戏界面,隐藏登录界面 3. ...

  3. 用JS制作《飞机大作战》游戏_第2讲(四大界面之间的跳转与玩家飞机的移动)-陈远波

    一.通过点击按钮事件,实现四大界面之间的跳转: (一)跳转的思路: 1.打开软件,只显示登录界面(隐藏游戏界面.暂停界面.玩家死亡界面) 2.点击微信登录(QQ登录)跳转到游戏界面,隐藏登录界面 3. ...

  4. iOS开发-应用之间的跳转及通信

    Update 2016-08-12: 在Github的Demo上增加Mac自定义Url Scheme,可以在Safari上输入特定协议头打开应用,并传递参数) 简介 我们接下来将要实现应用程序之间的跳 ...

  5. Mvc中域的添加和不同域之间的跳转

    一.在新添加的域中中的 AreaRegistration中作如下设置: 二.在原来的Global.asax中设置: 三.不同域之间的跳转 @Url.Action("Index", ...

  6. sprig里的controller之间的跳转的问题

    学习spring的controller,发现controller之间的跳转有些地方搞的不是很清楚,如果通过controller的return语句实现跳转的话,会造成request的丢失:具体怎么回事首 ...

  7. iOS开发拓展篇—应用之间的跳转和数据传递

    iOS开发拓展篇—应用之间的跳转和数据传 说明:本文介绍app如何打开另一个app,并且传递数据. 一.简单说明 新建两个应用,分别为应用A和应用B. 实现要求:在appA的页面中点击对应的按钮,能够 ...

  8. iOS中两个APP之间的跳转和通信

    app间的跳转 一:在第一个app首先要做下面这些操作: 1.在info.plist文件中的Information Property List下添加一项:URL types. 2.点开URL type ...

  9. php--tp中页面之间的跳转

随机推荐

  1. python守护进程

    1.守护进程 [1]使用runner这个模块直接创建守护进程,非常方便. [2]运行方法:python xxx.py start|stop|restart [3]调用python xxx.py sto ...

  2. selenium测瀑布流UI页面的Python代码

    from  selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdri ...

  3. 编译ijkplayer后直播无声音

    打开:ijkplayer-android/config/module-lite.sh 文件: 你要把neyllow打开,默认是关闭的,如下: export COMMON_FF_CFG_FLAGS=&q ...

  4. ECMAScript 6 新特性-set。const

    一.let命令是es6新增的特性,作用与var命令类似,声明变量,不同之处在于声明的变量的作用域为块级作用域.引入let后带来了很多新的特性. 1作用域,es5之前之后函数作用域和全局作用域,let的 ...

  5. Linux 信号signal处理函数

    转自:http://www.cnblogs.com/taobataoma/archive/2007/08/30/875662.html alarm(设置信号传送闹钟) 相关函数 signal,slee ...

  6. thinkphp5 部署注意事项

    配置tp5 需要修改设置 1. 通过yum安装的Apache,会默认安装在/etc/httpd因此配置文件也在相应的目录中 修改文件vim /etc/httpd/conf/httpd.confhttp ...

  7. jQuery基础2

    一.使用jQuery完成省市二级联动 遍历函数:方式一:$.each(callback) 方式二:$.each(object,[callback]) 代码: <!DOCTYPE html> ...

  8. web 安全:

    XSSXSS 全称“跨站脚本”,是注入攻击的一种. 其特点是不对服务器端造成任何伤害,而是通过一些正常的站内交互途径,例如发布评论,提交含有 JavaScript 的内容文本. 这时服务器端如果没有过 ...

  9. oracle 的tnsnames.ora,listener.ora

    x:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN listener.ora: # listener.ora Network Conf ...

  10. 关于总结一些CentOS7常用的运维命令

    Centos7日常需要用的运维命令 1.删除0字节文件 find-type f -size 0 -exec rm -rf {} \ 2.查看进程 按内存从大到小排列 ps -e   -o " ...