在vim中,主题是以插件形式存在。其中系统自带的主题,存放在$VIMRUNTIME/colors文件夹下,以*.vim命名。(注:查看$VIMRUNTIME请在vim中执行 :echo $VIMRUNTIME)
用户自定义的主题一般不放在系统目录下,而是放在~/.vim/colors目录下,这样不会干扰到其他用户,同时也方便备份自己的vim配置。
更换vim主题的命令为:
        :colorscheme 主题插件名称  
但是这样只能临时改变vim主题,退出后又会恢复原样,如果想永久改变,请在~/.vimrc中添加:
        colorscheme 主题插件名称

♠ 准备工作
在linux下或远程ssh使用终端下的vim,因此首先需要在~/.vimrc中添加开启256颜色支持:
        set t_Co=256  
为了能在编辑程序时高亮显示关键字,还需要在~/.vimrc中开启语法高亮显示:
        syntax enable  
        syntax on   
做完上述的准备工作后,让我们正式开始定制主题之旅吧!
定制主题
主题色调
在配置其他属性前,首先要配置主题整体的色调,只有两个选择:dark和light(暗色调和亮色调)。对于经常阅读和编写代码的程序员来说,暗色调是更好的选择:
set background=dark  
接下来,需要重新设置一下语法高亮,否则设置不会生效:
if version > 580  
    hi clear  
    if exists("syntax_on")  
        syntax reset  
    endif  
endif  
主题名称
主题名称是无参数调用 :colorscheme 时返回的信息,用于分辨不同主题,其设置如下:
let g:colors_name="nslib_color256"  
基础属性
由于vim可以在黑白终端、彩色终端、GUI界面下运行,所以需要对其分贝进行配置,下面给出一个简要的文档说明:
term         黑白终端的属性  
cterm        彩色终端的属性  
ctermfg      彩色终端前景色  
ctermbg      彩色终端背景色  
gui          GUI属性  
guifg        GUI前景色  
guibg        GUI背景色  
对于黑白终端,我们没有配置的必要,因此主要的配置工作集中在彩色终端与GUI界面上,又由于彩色终端与GUI界面的配置只是关键字不同,因此这里只选取彩色终端进行说明。
由于不是所有终端都支持256色,因此使用一些安全色会使我们的主题更有移植性,而GUI可以支持所有颜色,不在考虑范围之内,vim文档给出的安全色如下:
"0      Black    
"1      DarkBlue    
"2      DarkGreen          
"3      DarkCyan   
"4      DarkRed  
"5      DarkMagenta          
"6      Brown, DarkYellow              
"7      LightGray, LightGrey, Gray, Grey                     
"8      DarkGray, DarkGrey     
"9      Blue, LightBlue       
"10     Green, LightGreen            
"11     Cyan, LightCyan                      
"12     Red, LightRed                           
"13     Magenta, LightMagenta   
"14     Yellow, LightYellow     
"15     White

(有的颜色和数字在不同的系统中不对应,可以自己尝试,大致是这样的)
配色语法
下面举例说明配色语法:
hi Type             ctermfg=LightYellow     ctermbg=Black           cterm=bold  
其中,hi是highlight命令的缩写,用于高亮配置;Type是要配色的元素名称;参数采用的是Key=Value的形式。
元素列表
配置颜色的语法非常简单,无需累赘,下面将分类介绍常用的元素标签:
状态栏提示信息

hi StatusLine       状态栏  
hi StatusLineNC     非当前窗口的状态栏  
ErrorMsg            错误信息  
WarningMsg          警告信息  
ModeMsg             当前模式  
MoreMsg             其他文本  
Question            询问用户  
Error               错误  
文本搜索

hi IncSearch        增量搜索时匹配的文本符串  
hi Search           匹配的文本串  
弹出菜单

Pmenu               弹出菜单  
PmenuSel            菜单当前选择项  
窗体边框相关

VertSplit           垂直分割窗口的边框  
LineNr              行号  
Cursor              光标所在字符  
CursorLine          光标所在行  
ColorColumn         光标所在列  
ColorColumn         标尺  
NonText             窗口尾部的~和@,以及文本里实际不显示的字符  
diff模式

DiffAdd             diff模式增加的行  
DiffChange          diff模式改变的行  
DiffDelete          diff模式删除的行  
DiffText            diff模式插入文本  
C/C++语法

Comment             注释  
PreProc             预处理  
Type                数据类型  
Constant            常量  
Statement           控制语句  
Special             字符串中的中的特殊字符  
String              字符串  
cCppString          Cpp字符串  
Number              数字  
Todo                TODO、HACK、FIXME等标签

vim-colors-config的更多相关文章

  1. linux vim taglist config

    "vim config .vimrc "taglist map <silent> <F10> :TlistToggle let tlist_php_sett ...

  2. 转载:如何利用Vim进行Erlang开发

    转自:http://ovalpo.info/how_to_use_vim_for_erlang_dev/ 如何利用Vim进行Erlang开发 by Martin J. Logan on Septemb ...

  3. 一个小博客教你把vim用飞起来

    引言 今天我们特地来讲讲这个vim的配置. vim这东西, 很多人装逼的时候经常会提到, 不过大部分人对个vim的配置还是很陌生的, 因为 这个编辑器的学习成本还是有点高的, 但是不要紧, 今天我们就 ...

  4. Xshell连接ubuntu server端的vim(256色彩配置)

    VIM主题(Xshell端) [注]我的配置:Xshell连接VMware Workstation Pro下的Ubuntu 18 server版(要注意这里的server版,好似该版本没有下述的256 ...

  5. 转 -- Vim 常用快捷键

    ``` 全选(高亮显示):按esc后,然后ggvG或者ggVG 全部复制:按esc后,然后ggyG 全部删除:按esc后,然后dG 解析: gg:是让光标移到首行,在vim才有效,vi中无效 v :  ...

  6. 将VIM打造成强大的IDE

    转载自:所需即所获:像 IDE 一样使用 vim 如侵犯您的版权,请联系:2378264731@qq.com --------------------------------------------- ...

  7. 再探VIM配置

    再探VIM配置 最初找到这个发行版spf13-vim,在ubuntu上用的还比较方便,有很多插件:最近在mac上用,总是不兼容vim,用brew安装了最新的vim,还是跟系统不兼容,总是有问题,于是就 ...

  8. 一个文档让vim飞起来

    原文地址:http://www.cnblogs.com/songfy/p/5635757.html 引言 今天我们特地来讲讲这个vim的配置. vim这东西, 很多人装逼的时候经常会提到, 不过大部分 ...

  9. 所需即所获:像 IDE 一样使用 vim

    所需即所获:像 IDE 一样使用 vim 转载 yangyangwithgnu@yeah.net2015-11-08 10:05:53 谢谢 捐赠:支付宝 yangyangwithgnu@yeah.n ...

  10. Vim as a Python IDE

    参考视频:http://v.youku.com/v_show/id_XNDY4NTM4NzY0.html 好的,在我们默认的centos6的操作系统中使用的python2,我们一般会再去安装一个pyt ...

随机推荐

  1. ST表【p1311】 选择客栈

    题目描述 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到 n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0~k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均 ...

  2. 解密Java内存溢出之持久代

    垃圾回收是Java程序员了解最少的一部分.他们认为Java虚拟机接管了垃圾回收,因此没必要去担心内存的申请,分配等问题.但是随着应用越来越复杂,垃圾回收也越来越复杂,一旦垃圾回收变的复杂,应用的性能将 ...

  3. C++多重继承时调用相应的父类函数

    C++中没有super或parent关键字,想要调父类方法,只能使用明确的[父类名称::方法名] 假如要求A和B是C的父类的前提下,要使如下代码能够分别输出A和B的相关信息(虽然这个要求很少遇到... ...

  4. 【译】PHP之道(PHP the right way)

    刚入门的同学觉得自己能用PHP写出各种程序就很NB了,但其实作为一个专业程序员,你得有个全面点的知识结构.单元测试总得听过,文档工具总得用用,Xss总得会防.推荐大家把<PHP the righ ...

  5. Introduction to the TestFlight SDK

    https://developer.apple.com/testflight/ When you want to test an app on your device, usually you plu ...

  6. 设计模式之状态模式(PHP实现)

    github地址:https://github.com/ZQCard/design_pattern /** * 在状态模式(State Pattern)中,类的行为是基于它的状态改变的.这种类型的设计 ...

  7. oracle数据库中函数和存储过程中的区别

    一.函数必须有返回值,过程没有返回值: 二.函数可以单独执行,过程必须通过execute执行: 三.函数可以嵌入SQL中执行,过程不能. 可以将比较复杂的查询写成函数,然后在过程中调用.

  8. 【Hadoop】YARN 原理、MR本地&YARN运行模式

    1.基本概念 2.YARN.MR交互流程 3.源码解读

  9. oracle find blocking session

    show current session id     select sid from v$mystat where rownum=1; show blocking session     selec ...

  10. linux的chown命令

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...