Day 12:vim 配色方案

俗话说人要衣装,佛要金装,我们的 vim 也得要有漂亮的外观。今天就让我们来看看如何调教调整 vim 的外观吧!

Highlight group

highlight group(以下简称 hg )是 vim 中的一个概念,他会对应到 vim 画面中的一段区块,可能是一段文字,也可能是底下的 status bar 或是左侧的行号。每一个 hg 都可以设定样式,包括前景色背景色反白加底线等等,你可以用 :so $VIMRUNTIME/syntax/hitest.vim 命令查看所有的 hg 名字,他们的样式也会直接显示出来。
如果想看某个 hg 的说明的话(必须是内建的才有),可以用 :help hl-hgName查询说明,例如 CursorLine 就可以用 :help hl-CursorLine 来看说明

Highlight

:highlight 或是缩写 :hi 可以设定特定 hg 的样式

hi hgName arg=value arg=value......

hgName 就是你用 :so $VIMRUNTIME/syntax/hitest.vim 查出来的名字,而 arg 常见的有前景色 ctermfg、背景色 ctermbg 和 样式 cterm

Color

ctermbgctermfg 後面接的值会根据你的终端机支援的颜色不同而有变化,其中 8 色和 16 色的终端机都可以用 0 ~ 8 / 0 ~ 16 这样的方式来表示颜色(数字代表的颜色要看终端机设定),vim help 提供了一个对照表可以参考各个数字代表的颜色

NR-16   NR-8    COLOR NAME ~
0	    0	    Black
1	    4	    DarkBlue
2	    2	    DarkGreen
3	    6	    DarkCyan
4	    1	    DarkRed
5	    5	    DarkMagenta
6	    3	    Brown, DarkYellow
7	    7	    LightGray, LightGrey, Gray, Grey
8	    0*	    DarkGray, DarkGrey
9	    4*	    Blue, LightBlue
10	    2*	    Green, LightGreen
11	    6*	    Cyan, LightCyan
12	    1*	    Red, LightRed
13	    5*	    Magenta, LightMagenta
14	    3*	    Yellow, LightYellow
15	    7*	    White

第一栏是 16 色,第二栏是 8 色,第三栏是颜色名字,你也可以不用数字用颜色名字(不分大小写)

如果你的终端机支援 256 色(通常现在的终端机都会有),那就更好玩了,因为你可以用这麽多种颜色!

256 color
256 色表(填的是前面的数字(0-255)不是 hex 色码

cterm

通常文字不会只有颜色,还可以有加粗、底线等等样式,vim 总共提供了这些样式

样式名称 说明
bold 粗体
underline 底线
undercurl 卷卷的底线,如果你的终端机不支援的话会改用底线代替
reverse 反白
inverse 反白
italic 斜体(要字型有支援)
standout 翻译是「突出」,但是我用起来和 reverseinverse 效果一样,有人知道差在哪吗?
strikethrough 翻译是「删除线」但是我试不出来,也许是字体的关系
NONE 清除样式设定

如果你需要多种样式混合,例如底线 + 反白,你可以用逗号 , 来串起多的样式,cterm=underline,reverse,注意不能有空白,不然会跳错误。

有了这些,你就可以自订 vim 中任何一个部份的样式了,例如 hg CursorLine 代表的是游标所在行,我可以用以下命令改变他的样式

:hi CursorLine ctermbg=240 ctermfg=195
Customized CursorLine
自订的游标行

colorschema

所谓的 colorschema 其实就是一堆的 hi 指令写在一个档案里面,然後给他一个名字,vim 内建了很多 colorschema,放在 $VIMRUNTIME/colors 目录下。你可以用命令 :echo $VIMRUNTIME 来取得 $VIMRUNTIME 的值,因为系统环境变数可能不会有他(我的就没有)。
除了去网路上下载别人设计好的 colorschema, 你也可以参考 $VIMRUNTIME/colors 下的档案形式来制作自己的 colorschema,或是 Google 搜寻 vim colorschemes generator 就可以在网路上找到很多方便你制作 colorschemes 的工具


这篇文不小心断更了,呜呜呜,这里是我新的新开的文章系列 https://ithelp.ithome.com.tw/users/20130473/ironman/4804


<<:  PHP Switch 细节:Loose Comparison

>>:  Java 语言和你 SAY HELLO!!

(Day14) 闭包 (Closure) 介绍

闭包算是在 JS 中常听到,却不容易使用的一个方法,更多状况是不小心用出来,~~因此出 bug ~~...

[Day-3] 我的第一个C++程序

今天我要来记录我的第一个C++程序 上次介绍了Dev C++如何使用、建档以及C++的基本架构 如下...

Day04 永丰金API 基础流程 -- HashID

一样先上图 今天我们要处理的是Sign,在文件中或在看到产出规则,可以看到Hash为永丰金提供, N...

Day 2

登入 前往官方文件,查得 登入的范例程序码。 https://sinotrade.github.io...

30天打造品牌特色电商网站 Day.7 HTML基础

HTML 是一份可以给浏览器读取的文件,副档名为.html,我们在网页上所看见的元件,基本上都是由 ...