Vim高亮当前行(显示为下划线)的解决方案

Vim高亮当前行(显示为下划线)的解决方案

最近配置Vim,由于以前的vimrc早已丢失,只好重新配置一份,此为题外话,略过不提…

在Vim中,可以选择开启高亮当前行,这是一个很不错的特性。开启它也很简单,只需要在vimrc中加入这么一行:

1
set cursorline

或者

1
set cul

即可。

在gvim中,这样配置一般都能起作用,你会看到当前行被高亮了。但是在终端中,却很可能会出现问题,如果你发现本该被高亮的行没有高亮,而行底部却出现了一条下划线的话(如下图),就需要做一些额外的配置了。

Vim中有一个命令叫highlight,通过它可以自定义或者查看很多元素的配色方案,具体的作用可以自行:help highlight查看,我们用它来对高亮行做一些设置。
在vimrc中加入:

1
hi CursorLine term=bold cterm=bold ctermbg=Red

别忘了加载配置。
嗯,当前行不仅被高亮成了红色,而且还变成了粗体,这就是命令中boldRed的效果,其中cterm=bold就是指定在终端中被高亮的行变为粗体,而 ctermbg=Red就是指定高亮行在终端中的背景色,其他的选项还有ctermfg(前景色)guibg(gvim中的背景色)等等,这里就不赘述了。
这里是term=cterm=等可选的选项:

这里是ctermbg=可选的颜色:

前面的数字有什么用,我就不细说了。这里可以看到,有若干定义好的颜色可供选择,比如上面ctermbg=Red就是选择了这里的红色。
可能很多人和我一样,每种颜色都试了那么一下,却发现全部都不满意,自然而然的会想到,能否用RGB的形式自定义颜色呢?让我们先来试验一下,修改命令为:

1
hi CursorLine term=bold cterm=bold ctermbg=#FFD4E4

很可惜,你会得到vim的error信息:

难道就没办法自定义颜色了吗?别急,虽然无法自定义颜色,却可以让可选择的颜色多一些,Vim中默认的这几种颜色是为8位色终端定义的,应该是为了兼容一些很原始的环境。比如我的环境是CentOS Linux release 7.2.1511 (Core),不带图形界面。CentOS的终端默认开启的是8位色模式,查看自己的终端所处的颜色模式,可以在shell中输入:

1
echo $TERM

如果打印的结果中不含有256color,就表明你的终端并没有开启256色模式,可供选择的颜色可能不足。我们可以将终端配置为256色模式,以我的环境为例,执行以下命令:

1
sudo sh -c "echo 'export TERM=xterm-256color' >> /etc/profile"

回到Vim,执行:

1
:hi CursorLine term=bold cterm=bold ctermbg=237

高亮行的背景变成了淡淡的灰色

这里的ctermbg=237是256色中某个颜色的编号,可以查询这里256色展示

原文:大专栏 Vim高亮当前行(显示为下划线)的解决方案

推荐阅读

    学习写字楼新选择6000元主流配置

    学习写字楼新选择6000元主流配置,,这种配置需要考虑双核心的办公和娱乐平台,充分考虑办公室的办公需求和娱乐需求,以约6000元的预算和cost-e

    酷睿I7 配置

    酷睿I7 配置,配置,玩家国度啦华硕 Rampage II Extreme(3800元)如果米不够,也可以把Extreme改为Gene,不过是小板内存推荐金士顿6G DDR3 2000骇

    提高3A四核羿龙II游戏配置的性能

    提高3A四核羿龙II游戏配置的性能,,以节能环保为主题的IT产业,目前3A低端平台处理器、主板芯片组、独立开发卡性能突出,特别是在与AMD的处理

    opporeno8参数配置及价格

    opporeno8参数配置及价格,面部,亿元,Oppo的荣誉2020年1月4日,接近屏幕关闭传感器是否支持双卡:支持oppor11splus什么时候上市的Oppo R11S P

    查看配置:酷睿i3530集展示办公平台

    查看配置:酷睿i3530集展示办公平台,,由于时间和精力的关系,我们不可能对所有的配置进行评论,希望我们能理解,我希望我们的评论能在那些需要帮

    3500元超额值学生娱乐结构的优化配置

    3500元超额值学生娱乐结构的优化配置,,作为一个DIY的主流用户领域的学生,每个用户51学生攒机的高峰。因为学生用户没有稳定的收入来源,攒机

    电视wifi显示电脑|电脑 wifi 电视

    电视wifi显示电脑|电脑 wifi 电视,,1. 电脑 wifi 电视原因1、无线网络本身有问题如果发现手机无线网络连接上但上不了网,那么我们首先需要