这里有一份中文的入门文档,但是太长了,不想读,所以有本文

  1. 最快的办法,就是找一个语法相近的语法高亮文件,稍微改一下
  2. 自己从头写的话,首先搞定关键字:
syntax case match "是否区分大小写
syntax keyword 你的关键字类别名字x 关键字1 关键字2
syntax keyword 同样填x的话,不会覆盖,只追加 关键字3 关键字4

关键字搞不定的,一般用正则匹配:

syntax match 类别名  /正则表达式/

正则有个麻烦是不能部分匹配,比如我要匹配花括号前的,/[a-zA-Z_]+\s{/, Vim的语法高亮没有匹配组的概念,没法只高亮前面的字串,导致花括号也染色了。

这种情况下,需要用到嵌套识别,一般是region里嵌套keyword和match,也可以match里嵌套match。例如:

syntax keyword spTodo       contained TODO FIXME XXX
syntax cluster spCommentGrp contains=spTodo
syntax region spComment start="//" skip="\\$" end="$" keepend contains=@spCommentGrp

通过contains关键字,指定这个区域包含了哪些语法单位。

如何快速编写Vim语法高亮文件的更多相关文章

  1. 为msysgit增加vim语法高亮文件

    在win7下装了msysgit,今天我遇到一个不爽的问题,打开git bash,用vim打开一个xml文件 结果都是黑屏的,没语法高亮,这个必须不能忍啊,我找到msysgit的安装目录,发现Vim73 ...

  2. vim语法高亮插件编写

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

  3. 自己动手做 UEStudio/UltraEdit 的语法高亮文件 (*.uew)

    自己一直比较习惯用 UEStudio 来编写 C/C++ 文件,因为 Visual Studio 2010 实在太大了,我的 T400 都跑的费劲,所以一般我只用它来编译和调试.但是可惜的是 UESt ...

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

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

  5. notepad++go语法高亮文件

    notepad++go语法高亮文件 下载 右键另存为下载后在语言栏中的自定义面板中直接导入,重启即可

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

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

  7. vim 语法高亮

    1 .配置文件的位置 在文件夹 /etc/ 以下.有个名为vimrc 的文件.这是系统中公共的vim配置文件.对全部用户都有效.而在每一个用户的主文件夹下,都能够自己建立私有的配置文件,命名为:&qu ...

  8. 如何快速编写大项目的Makefile文件

    在构建C++的后台服务时,经常需要自己来编写makefile文件,而如果没有合适的方法或模板时,编写makefile文件是一件很费时费力的事情.因此,为了帮助程序员高效准确的编写makefile文件, ...

  9. centos7 配置nginx vim语法高亮

    看了Nginx核心知识100讲,按照他的做法,没有配置成功,可以使用下面的方法: 下载nginx源码,http://nginx.org/en/download.html 这里下载的是:nginx-1. ...

随机推荐

  1. 管道函数(%>%)很简单

    %>%来自dplyr包的管道函数,其作用是将前一步的结果直接传参给下一步的函数,从而省略了中间的赋值步骤,可以大量减少内存中的对象,节省内存 符号%>%,这是管道操作,其意思是将%> ...

  2. Java中request请求之 - 带文件上传的form表单

    常用系统开发中总免不了显示图片,保存一些文件资料等操作. 这些操作的背后,就是程序员最熟悉的 enctype="multipart/form-data"类型的表单. 说起file类 ...

  3. Unity-Animator深入系列---API详解

    回到 Animator深入系列总目录 测试Unity版本为5.2.1 人形动画的接口都有标注 本列表不包含所有标注为过时的方法 1.Vector3 angularVelocity { get; } [ ...

  4. 怎么修改git提交过的内容

    git修改历史提交   Git使用amend选项提供了最后一次commit的反悔.但是对于历史提交呢,就必须使用rebase了. git rebase -i HEAD~3 表示要修改当前版本的倒数第三 ...

  5. win安装NLTK出现的问题

    一.今天学习Python自然语言处理(NLP processing) 需要安装自然语言工具包NLTK Natural Language Toolkit 按照教程在官网https://pypi.pyth ...

  6. NGUI Camera's raycast hit through the UI Layer issue

    Raycast into GUI?http://forum.unity3d.com/threads/raycast-into-gui.263397/ << ; Ray myray = UI ...

  7. Selenium操作页面元素

    转自:http://blog.sina.com.cn/s/blog_6966650401012a7q.html 一.输入框(text field or textarea) //找到输入框元素: Web ...

  8. PHP二次开发discuz3.2最新体验

    康盛官方于6月4号发布了discuz3.2的正式版,因为这两天一直忙于一个项目,一直没来的及体验,现在抽时间总算是装上了,也体验一把. 根据官方说明:Discuz! X3.2 在继承和完善 Discu ...

  9. 51nod 1459 迷宫游戏(dij)

    题目链接:51nod 1459 迷宫游戏 dij裸题. #include<cstdio> #include<cstring> #include<algorithm> ...

  10. MySQL drop、delete和truncate的区别

    注意:这里说的delete是指不带where子句的delete语句 相同点 truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 d ...