# vim语法高亮插件编写

编写vim语法高亮插件很简单,只需要编写两个文件.vim放到vim的
安装目录下的目录就可以了。

## 输出
-----------------------------
- syntax 目录,语法高亮规则,eg. bhl.vim
- ftdetect 目录,检测文件类型自动加载语法高亮规则,eg bhl.vim

## 备注
-----------------------------
-上面两个文件编写好后,放到对应目录下即可。
- .hbl 直接使用语法规则
- 直接原始抓包文件,手工指定文件类型 :set filetype=bhl

## 语法高亮插件 bhl.vim
-----------------------------
```

" Vim syntax file
" filetype: bhl
" Language: BusHoundLog
" Maintainer: lixu <lixugood@126.com>
" Last change: 2017 Jun 01
"
" Language Information
"
" BusHound 抓包日志
" ic卡抓包指令分析,可以高亮显示指令
"

if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif

syn keyword BHout OUT
syn keyword BHin IN
"syn match BHout "^ \d\+.\?\d\?\s\+OUT\s\+.*"
"syn match BHin "^ \d\+.\?\d\?\s\+IN\s\+.*"
syn match BHok "90\s\+00"
syn match BHfind "\(ff\s\+04\s\+01\)\|\(ff\s\+ca\)"
"syn match BHslct "00\s\+a4\s\+0[04]"
syn match BHread "\(ff\|00\)\s\+b[02]"
syn match BHupdt "\(ff\|0[04]\)\s\+d[6c]"
syn match BHauth "ff\s\+88"

"--------------修改----------------- lixu
"--------------用户卡指令
syn match B_Crd_CPU "00\s\+20"
syn match B_Crd_CPU "00\s\+82"
syn match B_Crd_CPU "00\s\+84"
syn match B_Crd_CPU "00\s\+88"
syn match B_Crd_CPU "00\s\+a4"

syn match B_Crd_CPU "00\s\+20"
syn match B_Crd_CPU "00\s\+82"
syn match B_Crd_CPU "00\s\+84"
syn match B_Crd_CPU "00\s\+88"
syn match B_Crd_CPU "00\s\+a4"

syn match B_Crd_CPU "00\s\+b0"
syn match B_Crd_CPU "00\s\+b2"
syn match B_Crd_CPU "00\s\+c0"
syn match B_Crd_CPU "00\s\+d6"
syn match B_Crd_CPU "04\s\+d6"

syn match B_Crd_CPU "00\s\+d0"
syn match B_Crd_CPU "04\s\+d0"
syn match B_Crd_CPU "00\s\+dc"
syn match B_Crd_CPU "04\s\+dc"
syn match B_Crd_CPU "00\s\+d2"

syn match B_Crd_CPU "04\s\+d2"
syn match B_Crd_CPU "04\s\+d0"
syn match B_Crd_CPU "84\s\+16"
syn match B_Crd_CPU "84\s\+18"
syn match B_Crd_CPU "84\s\+1e"

syn match B_Crd_CPU "80\s\+24"
syn match B_Crd_CPU "84\s\+24"
syn match B_Crd_CPU "80\s\+2c"
syn match B_Crd_CPU "80\s\+50"
syn match B_Crd_CPU "80\s\+52"

syn match B_Crd_CPU "80\s\+54"
syn match B_Crd_CPU "80\s\+58"
syn match B_Crd_CPU "80\s\+5a"
syn match B_Crd_CPU "80\s\+5c"
syn match B_Crd_CPU "80\s\+5e"

syn match B_Crd_CPU "80\s\+0e"
syn match B_Crd_CPU "80\s\+30"
syn match B_Crd_CPU "80\s\+32"
syn match B_Crd_CPU "80\s\+d4"
syn match B_Crd_CPU "84\s\+d4"

syn match B_Crd_CPU "80\s\+e0"

"--------------SAM卡指令
syn match B_Crd_SAM "80\s\+70"
syn match B_Crd_SAM "80\s\+72"
syn match B_Crd_SAM "80\s\+fa"
syn match B_Crd_SAM "80\s\+1c"
syn match B_Crd_SAM "80\s\+1a"

"-------------错误信息
syn match B_Error "65\s\+00"
syn match B_Error "67\s\+00"
syn match B_Error "68\s\+82"
syn match B_Error "69\s\+01"
syn match B_Error "69\s\+81"

syn match B_Error "69\s\+82"
syn match B_Error "69\s\+83"
syn match B_Error "69\s\+84"
syn match B_Error "69\s\+85"
syn match B_Error "69\s\+86"

syn match B_Error "69\s\+87"
syn match B_Error "69\s\+88"
syn match B_Error "6a\s\+80"
syn match B_Error "6a\s\+81"
syn match B_Error "6a\s\+82"

syn match B_Error "6a\s\+83"
syn match B_Error "6a\s\+84"
syn match B_Error "6a\s\+85"
syn match B_Error "6a\s\+86"
syn match B_Error "6a\s\+88"

"syn match B_Error "6b\s\+00"
syn match B_Error "6e\s\+00"
syn match B_Error "6f\s\+00"
syn match B_Error "6a\s\+86"
syn match B_Error "93\s\+02"

syn match B_Error "93\s\+03"
syn match B_Error "94\s\+01"
syn match B_Error "94\s\+02"
syn match B_Error "94\s\+03"
syn match B_Error "94\s\+06"

syn match B_Error "63\s\+c\d"

"--------------读卡控制指令
syn match BCrd "00\s\+62"
syn match BCrd "00\s\+63"
syn match BCrd "00\s\+6f"
syn match BCrd "00\s\+6f"
syn match B_Drd "00\s\+50"

syn match B_Drd "ff\s\+01"
syn match B_Drd "ff\s\+02"
syn match B_Drd "ff\s\+03"
syn match B_Drd "ff\s\+04"
syn match B_Drd "ff\s\+05"
syn match B_Drd "ff\s\+06"

syn match B_Drd "ff\s\+8a"
syn match B_Drd "ff\s\+8b"
syn match B_Drd "ff\s\+8c"

"----------------Mifare卡
syn match B_Drd "ff\s\+82"
syn match B_Drd "ff\s\+88"
syn match B_Drd "ff\s\+b0"
syn match B_Drd "ff\s\+d6"
syn match B_Drd "ff\s\+ca"
syn match B_Drd "ff\s\+cb"
syn match B_Drd "ff\s\+cc"
syn match B_Drd "ff\s\+cd"

"--------------配色
hi BCrd guifg=gray
hi BHout guifg=yellow
hi BHin guifg=blue
hi BHfind guifg=DarkOliveGreen1 guibg=grey15
hi BHok guifg=grey15 guibg=green
hi link BHfind BHok
hi BHslct guifg=green guibg=blue
hi BHread guifg=purple guibg=grey
hi BHupdt guifg=brown guibg=grey
hi BHauth guifg=magenta guibg=grey

"-------------------配色
hi B_Crd_SAM guifg=grey15 guibg=yellow
hi B_Crd_CPU guifg=grey15 guibg=blue
hi B_Error guifg=grey15 guibg=red
hi B_Drd guifg=lightmagenta

let b:current_syntax = "BusHoundLog"

```

## 文件类型管理 bhl.vim
-----------------------------
```
" bhl filetype file
au BufRead,BufNewFile *.bhl set filetype=bhl
```

[参考](http://www.cnblogs.com/plwang1990/p/4106695.html)

vim语法高亮插件编写的更多相关文章

  1. 一个C#语法高亮插件

    语法高亮对程序员阅读代码来说有着不小的帮助,虽然VisualStudio本身支持C#语法高亮,但也只是对关键字.类名.字符串等少数元素加了标记,而我们代码中主题:变量.函数.属性.事件等都没有进行高亮 ...

  2. 12款最佳的 WordPress 语法高亮插件推荐

    语法高亮工具增强了代码的可读性,美化了代码,让程序员更容易维护.语法高亮提供各种方式由以提高可读性和文本语境,尤其是对于其中可以结束跨越多个页面的代码,以及让开发者自己的程序中查找错误.在这篇文章中, ...

  3. ubuntu 12.04 lts安装golang并设置vim语法高亮

    安装golang sudo apt-get install golang 设置vim语法高亮 sudo apt-get install vim-gocomplete gocode vim-syntax ...

  4. sublime的Vue语法高亮插件安装

    1.准备语法高亮插件vue-syntax-highlight. 下载地址: https://github.com/vuejs/vue-syntax-highlight 下载页面并下载: 解开压缩包vu ...

  5. 写了一个Hy的vscode语法高亮插件

    -------2018 8 3----------- 把函数名和参数改了,正则有点古怪,参考自带的lambda表达式才搞定 但彩色括号走了弯路,各种配图有彩色括号的插件其实很少是自己搞的,其实只要再装 ...

  6. js 语法高亮插件之 Prism.js

    之前也介绍过几款语法高亮插件<为博客园选择一个小巧霸气的语法高亮插件>以及关于他们的综合性能<再议 语法高亮插件的选择>.今天在小影志博客看到<使用 Prism.js 实 ...

  7. 2017-12-24 为新语言编写Visual Studio Code语法高亮插件

    本文源码库: program-in-chinese/quan4-highlighter 语法高亮是一个开发环境的基本功能. 此文尝试为之前的"圈4"语言(详见编程语言试验之Antl ...

  8. 如何快速编写Vim语法高亮文件

    这里有一份中文的入门文档,但是太长了,不想读,所以有本文 最快的办法,就是找一个语法相近的语法高亮文件,稍微改一下 自己从头写的话,首先搞定关键字: syntax case match "是 ...

  9. vim语法高亮不起作用解决

    首先将vim更新为最新版yum -y install vim,并安装Vim的加强版vim-enhanced ,以安装支持彩色的组件    yum -y install vim-enhanced 接下来 ...

随机推荐

  1. NGUI自适应屏幕分辨率

    unity官方承诺的新ui系统一直没有推出来,我们的UI使用的是原生的OnGUI系统,刚好UI需要改版,索性就想迁到NGUI上面来,于是看了一下NGUI源码,发现NGUI可以大大的降低DrawCall ...

  2. SQL性能调优基础教材

    一.数据库体系结构 1.       Oracle数据库和实例 数据库:物理操作系统文件或磁盘的集合. 实例:一组Oracle后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程 ...

  3. Newtonsoft.Json.4.5.11使用方法总结---反序列化json字符串

    写在开头: 最近项目需求,需要在C#中处理json字符串,毫不犹豫的下载了Newtonsoft.Json 4.5.11(2012.12.17)http://json.codeplex.com/,然后百 ...

  4. LightOJ - 1265 Island of Survival 期望

    题目大意:有一个生存游戏,里面t仅仅老虎,d仅仅鹿,另一个人,每天都要有两个生物碰面,如今有下面规则 1.老虎和老虎碰面.两仅仅老虎就会同归于尽 2.老虎和人碰面或者和鹿碰面,老虎都会吃掉对方 3.人 ...

  5. linux grep的选项

    grep  -i          关闭大写和小写敏感性 grep      -v    打印全部不包括. . 的行(屏蔽某些条目) grep     -l     打印包括模式的文件名称 grep  ...

  6. 网页图表控件Highcharts如何详细设置参数

    在下载了Highcharts范例之后,按照如下所示第一步第二步操作.在第二步中,默认并没有提供很多参数设置,比如如何去掉右下角的水印,如何自定义图标的高度宽度,背景颜色等等. 在我的另一篇文章中(Hi ...

  7. vue - check-versions.js for shell

    shelljs:https://www.npmjs.com/package/shelljs , 类似linux.unix.powser shell里面的命令. ShellJS是Node.js API之 ...

  8. phpMyAdmim和Yii 连接Mysql报错。

    故障: 之前phpMyAdmim和Yii连接Mysql都好着的.某天,同一时候出现例如以下报错: 1.linux下phpMyAdmin 出现 "缺少 mysqli 扩展,请检查 PHP 配置 ...

  9. SQL中的重要语句

    1.查询每个数据库有多少空间被浪费 如果你想知道在你数据库设计后,每页有多少空间浪费掉,你可 以通过下列动态管理视图(DMV)查询下缓冲池:sys.dm_os_buffer_descriptors 从 ...

  10. 【LeetCode】- Search Insert Position(查找插入的位置)

    [ 问题: ] Given a sorted array and a target value, return the index if the target is found. If not, re ...