Vim自定义高亮分组以及一些实用技巧小结
前言
Linux下的Vim代码编辑器简单好用,但是本身对编程语言的关键字高亮及配色需要用户自己设置。下面这篇文章主要就给大家介绍了关于Vim自定义高亮分组及实用技巧的相关内容,需要的朋友们下面来一起看看吧。
highlight
在 Vim 中,我们可以自定义一些颜色分组,并将其应用于某些符合特定模式的字符串中,这些分组就成为高亮分组(highlight group)。
我们可以直接在命令行模式中输入 highlight 命令,后面不跟上任何参数,这样就能查看当前 Vim 中所有的高亮分组信息。
:highlight
这里定义一个名为 myColor 的高亮分组,将背景颜色设置为紫色:
:highlight myColor ctermbg=purple guibg=purple
我们使用 highlight 命令来定义高亮分组,后面跟上分组名和颜色模式。其中,ctermbg 表示命令行中的背景色,guibg 表示 GUI 界面中的背景色。类似的还有 ctermfg、guifg,分别表示命令行前景色和 GUI 界面前景色。
还可以直接为已有的高亮分组起别名,只需要将新的分组连接到已有的分组即可。
highlight link {newgroup} {oldgroup}
定义完高亮分组后,我们可以将它应用到文本中。接下来,我给大家介绍几种设置高亮的方法。
match
match 命令用于在当前窗口中设置高亮模式,格式如下:
:match {group} /pattern/
例如,我们将所有的数字都用 myColor 分组进行高亮显示:
:match myColor /vd+/
match 命令的特点是同一时刻只能使用一种高亮模式,当设置新的高亮模式时,旧的高亮模式会被取消。
如果要同时高亮多个模式,可以使用 2match 和 3match 命令,它们的语法和功能与 match 相同,但每个命令每次只能设置一种高亮模式。
:2match myColor /anotherPattern/
取消高亮
:match none
:2match none
:3match none
syntax match
syntax match 命令用于设置语法高亮,格式如下:
:syntax match {group} pattern
例如,我们将引号包围起来的内容使用 myColor 分组高亮显示:
:syntax match myColor /v"w+"/
取消高亮
:syntax clear
syntax keyword
syntax keyword 命令用于设置关键字高亮,格式如下:
:syntax keyword {group} word1 word2 ...
例如,我们把 hello 和 world 两个单词作为关键字进行高亮:
:syntax keyword myColor hello world
取消高亮
:syntax clear
实用技巧
搜索结果高亮
Search 是匹配文本时默认使用的高亮分组,我们可以自定义该分组的颜色,下面的代码将使搜索结果以绿色的背景展示出来。
:highlight Search ctermbg=green guibg=green
超长文本高亮
编写代码时,常常会遇到一行中代码过长的情况,我们可以通过设置高亮实时检测是否有超长的代码。
:highlight rightMargin term=bold ctermfg=blue guifg=blue
:match rightMargin /.%>72v/
上面的命令会将一行中超过72个字的部分用蓝色字体高亮显示。
行尾空格高亮
我们经常会遇到行尾有多余空格的情况,但正常情况下,很难发现这些多余的空格。使用高亮来显示这些空格再合适不过了。
:highlight extraSpace ctermbg=red guibg=red
:match extraSpace /vs+$/
- (18) 为什么说继承是把双刃剑 / 计算机程序的思维逻辑
- 有效的python属性管理:描述符的使用
- (17) 继承实现的基本原理 / 计算机程序的思维逻辑
- (16) 继承的细节
- Python时间处理完全手册
- 计算机程序的思维逻辑 (15) - 初识继承和多态
- 前端自动化测试漫长路之——Selenium初探
- 计算机程序的思维逻辑 (14) - 类的组合
- webpack中tree-shaking技术介绍
- Python进行远程视频监控
- 好用的前端页面性能检测工具—sitespeed.io
- 计算机程序的思维逻辑 (13) - 类
- 新浪微博爬虫最新分享
- Unity Application Block 3月12 发布的版本
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- tcsetpgrp failed重新编译tini
- s3cmd ls之迷惑
- 构建pyflink镜像
- apt-get update遇到NO_PUBKEY
- 遇到mpi worker exited on signal 9
- 容器共享GPU时查看容器使用的GPU编号
- oci runtime error: exec failed: container_linux.go:247: starting container process caused “exec: “/
- R|UpSet-集合可视化
- 美国队长的盾(一) 同心圆
- R|clusterProfiler-富集分析
- R|fastqcr QC数据处理
- R|timeROC-分析
- R|ML_code-线性回归(2)
- R|机器学习入门-多元线性回归(3)
- Bioinfo|bedtools-操作VCF文件