Vim自定义高亮分组以及一些实用技巧小结

 更新时间:2017年07月11日 11:32:17   作者:Wray  
Vim/Vi基本上是*nix世界最受欢迎的编辑器了,不知道为什么,一直以来觉得和Emacs比起来,Vim更加有亲和力,用起来很舒服。那么下面这篇文章主要给大家介绍了关于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 /\v\d+/

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 /\v\s+$/

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • Linux用make指令编译进度条程序

    Linux用make指令编译进度条程序

    这篇文章主要为大家详细介绍了在Linux下写一个简单的进度条,用make指令进行编译,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Linux磁盘管理之LVM的使用

    Linux磁盘管理之LVM的使用

    这篇文章主要介绍了Linux磁盘管理之LVM,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • linux服务器上使用nginx访问本地静态资源的方法

    linux服务器上使用nginx访问本地静态资源的方法

    这篇文章主要介绍了linux服务器上如何使用nginx访问本地静态资源,本文给出了解决方法,需要的朋友可以参考下
    2019-12-12
  • Apache支持 shtml和include文件解析

    Apache支持 shtml和include文件解析

    这篇文章主要介绍了Apache支持 shtml和include文件解析的相关资料,需要的朋友可以参考下
    2015-07-07
  • Linux命令行之使光标快速移动的快捷键

    Linux命令行之使光标快速移动的快捷键

    这篇文章主要介绍了Linux命令行之使光标快速移动的快捷键,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Linux 服务器分区及挂载

    Linux 服务器分区及挂载

    这篇文章主要介绍了Linux 服务器分区及挂载的相关资料,需要的朋友可以参考下
    2017-05-05
  • 在 Apache 中创建单个文件的别名的操作方法

    在 Apache 中创建单个文件的别名的操作方法

    要创建 Apache 中的单个文件的别名,您可以在 Apache 配置文件中使用 Alias 指令,Alias 指令允许您将 URL 路径映射到文件系统位置,该路径可以是目录或单个文件,本文介绍如何在 Apache 中创建单个文件的别名,感兴趣的朋友一起看看吧
    2024-12-12
  • linux vim一些实用的快捷键和方法分享

    linux vim一些实用的快捷键和方法分享

    这篇文章主要介绍了linux vim一些实用的快捷键和方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 通过 SSH 在远程 Linux 系统上运行命令的方法

    通过 SSH 在远程 Linux 系统上运行命令的方法

    这篇文章主要介绍了通过 SSH 在远程 Linux 系统上运行命令的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • protobuf简单介绍和ubuntu 16.04环境下安装教程

    protobuf简单介绍和ubuntu 16.04环境下安装教程

    protobuf是谷歌的开源序列化协议框架,结构类似于XML,JSON这种,显著的特点是二进制的,效率高,主要用于通信协议和数据存储等方面,算是一种结构化数据的表示方法。这篇文章主要介绍了protobuf简单介绍和ubuntu 16.04环境下安装教程,需要的朋友可以参考下
    2019-06-06

最新评论