vim语法高亮插件编写

摘要:
#vim语法高亮插件编写编写vim语法高亮插件很简单,只需要编写两个文件.vim放到vim的安装目录下的目录就可以了。##输出------------------------------syntax目录,语法高亮规则,eg.bhl.vim-ftdetect目录,检测文件类型自动加载语法高亮规则,egbhl.vim##备注------------------------------上面两个文件编写好后,放到对应目录下即可。-.hbl直接使用语法规则-直接原始抓包文件,手工指定文件类型:setfiletype=bhl##语法高亮插件bhl.vim-----------------------------```"Vimsyntaxfile"filetype:bhl"Language:BusHoundLog"Maintainer:lixu"Lastchange:2017Jun01""LanguageInformation""BusHound抓包日志"ic卡抓包指令分析,可以高亮显示指令"ifversion˂600syntaxclearelseifexistsfinishendifsynkeywordBHoutOUTsynkeywordBHinIN"synmatchBHout"^d+.?s+INs+.*"synmatchBHok"90s+00"synmatchBHfind"|""synmatchBHslct"00s+a4s+0[04]"synmatchBHread"s+b[02]"synmatchBHupdt"s+d[6c]"synmatchBHauth"ffs+88""--------------修改-----------------lixu"--------------用户卡指令synmatchB_Crd_CPU"00s+20"synmatchB_Crd_CPU"00s+82"synmatchB_Crd_CPU"00s+84"synmatchB_Crd_CPU"00s+88"synmatchB_Crd_CPU"00s+a4"synmatchB_Crd_CPU"00s+20"synmatchB_Crd_CPU"00s+82"synmatchB_Crd_CPU"00s+84"synmatchB_Crd_CPU"00s+88"synmatchB_Crd_CPU"00s+a4"synmatchB_Crd_CPU"00s+b0"synmatchB_Crd_CPU"00s+b2"synmatchB_Crd_CPU"00s+c0"synmatchB_Crd_CPU"00s+d6"synmatchB_Crd_CPU"04s+d6"synmatchB_Crd_CPU"00s+d0"synmatchB_Crd_CPU"04s+d0"synmatchB_Crd_CPU"00s+dc"synmatchB_Crd_CPU"04s+dc"synmatchB_Crd_CPU"00s+d2"synmatchB_Crd_CPU"04s+d2"synmatchB_Crd_CPU"04s+d0"synmatchB_Crd_CPU"84s+16"synmatchB_Crd_CPU"84s+18"synmatchB_Crd_CPU"84s+1e"synmatchB_Crd_CPU"80s+24"synmatchB_Crd_CPU"84s+24"synmatchB_Crd_CPU"80s+2c"synmatchB_Crd_CPU"80s+50"synmatchB_Crd_CPU"80s+52"synmatchB_Crd_CPU"80s+54"synmatchB_Crd_CPU"80s+58"synmatchB_Crd_CPU"80s+5a"synmatchB_Crd_CPU"80s+5c"synmatchB_Crd_CPU"80s+5e"synmatchB_Crd_CPU"80s+0e"synmatchB_Crd_CPU"80s+30"synmatchB_Crd_CPU"80s+32"synmatchB_Crd_CPU"80s+d4"synmatchB_Crd_CPU"84s+d4"synmatchB_Crd_CPU"80s+e0""--------------SAM卡指令synmatchB_Crd_SAM"80s+70"synmatchB_Crd_SAM"80s+72"synmatchB_Crd_SAM"80s+fa"synmatchB_Crd_SAM"80s+1c"synmatchB_Crd_SAM"80s+1a""-------------错误信息synmatchB_Error"65s+00"synmatchB_Error"67s+00"synmatchB_Error"68s+82"synmatchB_Error"69s+01"synmatchB_Error"69s+81"synmatchB_Error"69s+82"synmatchB_Error"69s+83"synmatchB_Error"69s+84"synmatchB_Error"69s+85"synmatchB_Error"69s+86"synmatchB_Error"69s+87"synmatchB_Error"69s+88"synmatchB_Error"6as+80"synmatchB_Error"6as+81"synmatchB_Error"6as+82"synmatchB_Error"6as+83"synmatchB_Error"6as+84"synmatchB_Error"6as+85"synmatchB_Error"6as+86"synmatchB_Error"6as+88""synmatchB_Error"6bs+00"synmatchB_Error"6es+00"synmatchB_Error"6fs+00"synmatchB_Error"6as+86"synmatchB_Error"93s+02"synmatchB_Error"93s+03"synmatchB_Error"94s+01"synmatchB_Error"94s+02"synmatchB_Error"94s+03"synmatchB_Error"94s+06"synmatchB_Error"63s+cd""--------------读卡控制指令synmatchBCrd"00s+62"synmatchBCrd"00s+63"synmatchBCrd"00s+6f"synmatchBCrd"00s+6f"synmatchB_Drd"00s+50"synmatchB_Drd"ffs+01"synmatchB_Drd"ffs+02"synmatchB_Drd"ffs+03"synmatchB_Drd"ffs+04"synmatchB_Drd"ffs+05"syn

# 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+OUTs+.*"
"syn match BHin "^ d+.?d?s+INs+.*"
syn match BHok "90s+00"
syn match BHfind "(ffs+04s+01)|(ffs+ca)"
"syn match BHslct "00s+a4s+0[04]"
syn match BHread "(ff|00)s+b[02]"
syn match BHupdt "(ff|0[04])s+d[6c]"
syn match BHauth "ffs+88"

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

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

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

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

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

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

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

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

syn match B_Crd_CPU "80s+e0"

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

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

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

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

syn match B_Error "6as+83"
syn match B_Error "6as+84"
syn match B_Error "6as+85"
syn match B_Error "6as+86"
syn match B_Error "6as+88"

"syn match B_Error "6bs+00"
syn match B_Error "6es+00"
syn match B_Error "6fs+00"
syn match B_Error "6as+86"
syn match B_Error "93s+02"

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

syn match B_Error "63s+cd"

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

syn match B_Drd "ffs+01"
syn match B_Drd "ffs+02"
syn match B_Drd "ffs+03"
syn match B_Drd "ffs+04"
syn match B_Drd "ffs+05"
syn match B_Drd "ffs+06"

syn match B_Drd "ffs+8a"
syn match B_Drd "ffs+8b"
syn match B_Drd "ffs+8c"

"----------------Mifare卡
syn match B_Drd "ffs+82"
syn match B_Drd "ffs+88"
syn match B_Drd "ffs+b0"
syn match B_Drd "ffs+d6"
syn match B_Drd "ffs+ca"
syn match B_Drd "ffs+cb"
syn match B_Drd "ffs+cc"
syn match B_Drd "ffs+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语法高亮插件编写》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇autossh使用(本机记住ssh密码)SSL连接建立过程分析(6)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

docker下修改mysql配置文件

第一步: 找到要修改的镜像 docker ps    第二步: 进入要修改的镜像 docker exec -it 容器ID /bin/bash    第三步: 进入要修改的文件目录 cd /etc/mysql    第四步: 安装vim 如果不安装vim在使用vim的时候会报找不到,在修改docker中mysql的配置文件,无法使用vi命令。 apt...

97 条 Linux 常用命令及Vim命令总结

一:Vim编辑模式命令 基本上Vim共分为3种模式,分别是一般模式,编辑模式和命令行模式,这三种模式的作用分别如下简述: 一般模式:默认模式。打开vim直接进入的是一般模式,在这个模式下,可以进行的操作有:移动光标,复制,粘贴,删除。 编辑模式:编辑文件内容,在界面左下方会出现INSERT的字样。 命令行模式:查找、读取、保存、替换字符、显示行号、离开v...

VimDiff技巧

源程序文件(通常是纯文本文件)比较和合并工具一直是软件开发过程中比较重要的组成部分。现在市场上很多功能很强大的专用比较和合并工具,比如 BeyondCompare;很多IDE 或者软件配置管理系统,比如Eclipse, Rational ClearCase都提供了内建的功能来支持文件的比较和合并。 当远程工作在Unix/Linux平台上的时候,恐怕最简单而...

QQ 5.0的一些特效学习 一

虽然QQ5.0已经过去很久了,但是有些特效还是值得学习的  效果:  源码点我 导入的jar包, 一个是高版本的support.v4包,需要这个v4包中有ViewDragHelper. 我这里使用的是support-v4:24.1.1 还要添加一个nineoldandroids的jar包,这是一个开源的动画库,使用方便。 GitHub地址:https:/...

天气预报APP(2)

之前实现了能够罗列可以罗列出全国所有的省、市、县,然后就是查询全国任意城市的天气信息。查询天气信息使用的是和风天气的api,这个api获得的天气信息是JSON格式的。 使用GSON库解析JSON数据的第一步要先定义用于映照的类。 我对官方实例做了一下删减,然后可以看到这次我想要展示在这次这个项目中的信息: { "HeWeather5": [...

MongoDB 高级查询_aggregate聚合管道

MongoDB 聚合管道(AggregationPipeline) 使用聚合管道可以对集合中的文档进行变换和组合。实际项目应用主要是表关联查询、数据的统计。 MongoDB 中使用 db.COLLECTION_NAME.aggregate([{<stage>},...]) 方法 来构建和使用聚合管道。下面是官网给的实例,感受一下聚合管道的用法。...