每个程序员的文本编辑器缺少了语法高亮、特殊关键字和短语着色,都是不完整的。语法高亮突出了文档的结构,帮助发现排字错误,利于调试,整体上让文本编辑更轻松更有效率。本篇我们将探讨一下Vim的语法高亮范式以及如何建立和定制着色方案。
Vim着色方案:
首先说明,本文谈论的不是哪种颜色最好,而是Vim如何处理语法高亮的问题。
在决定如何给一个文件着色时,Vim首先将文件分解成若干结构组。这些都是通过编写好的语法命令文件来实现,这些文件在Vim加载一个文件的时候就自动加载了,加载过程则是基于一系列复杂规则。如果Vim选择了一个错误的语法命令文件,你可以通过以下命令手工指定一个正确的文件:
:setsyn=syntax-type
其中syntax-type是一个文件的类型。通常文件类型就是文件扩展名,例如选择PHP语法高亮,则将syntax-type设置为“php”。
Vim主要使用以下九种高亮分组:
复制代码
Comment??:注释
Constant?:常量,例如数字、引号内字符串、布尔值。
Identifier:变量标识符名称。
Statement?:编程语言的声明,一般是像“if”或“while”这样的关键字。
PreProc??:预处理,例如C语言中的“#include”。
Type???:变量类型,例如“int”。
Special??:特殊符号,通常是类似字符串中的“\n”。
Underlined:文本下划线。
Error???:显示编程语言错误的文本。
另外还有一个分组叫做Normal,表示普通文本。
也许你已经注意到,这些高亮分组主要针对编程语言,这是因为语法高亮对它们最有用。但是,Vim的高亮命令覆盖的文件类型远超过编程语言,包括从HTML到EMAIL的任何东西。
Vim还支持三种输出设备:black-and-whiteterminal(黑白终端),colorterminal(彩色终端)和GUI(图形化的用户接口)。因为它们每一个都有自己独特的高亮能力,Vim为它们维护了三个独立的高亮方案。
建立高亮:
实现高亮的最简便方式就是使用别人写好的.vimrc文件,就像这个。大多数时候这样做都挺好使。但是,如果它不好使或者你想从头开始,以下就是告诉你如何从头开始。
你必须在你的.vimrc文件的第一行写入:
syntaxon
这行命令告诉Vim开始使用语法高亮。如果你暂时不想改动文件,你也可以在Vim窗口输入它作为一行命令。
如果你正在使用黑白终端或者GUI接口,一切都工作得刚刚好。如果你正在使用一个支持彩色的终端,你也许不得不将以下命令置于syntaxon上一行:
setterm=ansi
你也可以尝试一下color_xterm来代替ansi。
选择颜色:
Vim有一套默认颜色方案,在我看来,有点过度明亮和混乱(注释和变量颜色是一样的)。但是每个人都有一套自己的颜色偏好,因此你可能会很想了解如何改变它的色彩来符合自己的口味。
Vim着色使用:highlight和:hi命令。:hi命令实际上是多用途命令,它负责许多例行着色,我们仅用它的颜色选择功用。它具有以下语法:
:hiGroupkey=value...
Group就是前面所说的9个高亮分组名。
key-value键值对规定了不同输出终端的高亮值。这里有三个基本键名:term、cterm和gui,代表着黑白终端、彩色终端和图形界面。除了term以外,另外两个基本键还有两个扩展键名base-namefg和base-namebg,分别代表对应终端的前景和背景颜色。基本键只能拥有非色彩的高亮值,例如加粗和下划线。
以下是一些高亮键和它们可能的值:
term/cterm/gui:bold,underline,reverse,italic,none
ctermfg/ctermbg:red,yellow,green,blue,magenta,cyan,white,blcak,gray
guifg/guibg:以上所有颜色,而且还可以使用#rrggbb格式色彩。
例如,我想高亮我的预处理声明为brightmagenta,可以使用如下命令:
:hiPreProcctermfg=magentacterm=boldguifg=#FF00FF
注意,我可以在一行中使用多个键值对,他们都会应用于同一个高亮分组。
通常来说,只要你喜欢一个着色方案,你可以将它设置在你的~/.vimrc文件中,Vim会自动将其加载。
语法高亮除错:
Vim的语法高亮偶尔也存在一些小问题,我就经常遭遇到其中的三个。
没有彩色,只有黑白终端高亮。
导致这种情况的最常见的原因是Vim无法确定终端是否具备彩色能力。要修复它,首先确保在.vimrc文件第一行设置了term=ansi,一定要在syntaxon所在行之前。另外还要在shell中将环境变量TERM设置为color_xterm和color-xterm。
颜色有了,但不是我想要的。
这常发生在你试图修改别人的.vimrc文件以为己用的时候。有时,你只需要将自己的色彩定义全部放到文件的底部去就可以修复。如果不奏效的话,检查所有可疑的代码,然后将它们注释。(注释方法为在行首添加双引号)
滚屏时颜色乱成一团
Vim在确定高亮法则的时候使用多种探索方法来节约时间,有时这会造成一些故障。查看:hsyn-sync可以得到更多细节。要修复这个,你可使用以下命令:
synsyncminlines=1000
你也可以在.vimrc文件中设置更大的数值。在Vim6.0及以上版本,你可以使用以下命令:
synsyncfromstart
该命令强制高亮引擎从文件第一行开始解析文件,这对大文件而言会很慢,但它可以确保色彩准确度。
此时此刻,如果你习惯了使用Vim,并且你已经鼓捣了一阵它的配置,发现一些你喜欢的特性,恭喜你,你现在是一个VimUser了。当然,在本教程中我还会教更多的关于Vim的东西,有人写了一整本关于编程的书,但我希望你从本教程可以掌握一些基础知识并且探索更多知识。享受学习,这是一项你永远不会后悔拥有的技能。
Tags:Vim.
小编点评:lazyWiFii是一款免费的能够帮.
下载小编点评:2017年的NBA全明星正赛今天上午已经结.
下载小编点评:想必友友们电脑里有装过动辄几百兆的杀.
下载小编点评:电脑屏幕尺是一款显示在电脑桌面上的屏幕.
下载小编点评:企鹅梦物语修改器是同名游戏的作弊器工具,
下载小编点评:非常搞笑的房租婆QQ表情包,很喜欢.
下载小编点评:多功能通讯录2.0.1使用说明:1、.
下载小编点评:AlternateMathSolv.
下载小编点评:美图秀秀20100329娃娃素材包.
下载小编点评:Toby是一款用于管理chrome标签.
下载小编点评:软件介绍圆圆打字高手是一款打字练习及测试软.
下载小编点评:软件介绍瑞易视频相册自带一个万能M.
下载小编点评:软件介绍本软件是专门为法院部门管理本单.
下载网趣网上购物系统时尚版V14.0下载
淘宝刷动态评分软件V4.2.9下载
Wave flow(音频编辑软件)V5.8免费版下载
PE文件读写工具下载-PE文件读写软件 v12.26 绿色版
好实再增客系统app下载-好实再增客系统 v4.2.2 手机版
新浪万剑辅助工具V2.3.5免费版下载
爱心对对碰(暂未上线)
空之岛失落王国官方下载-空之岛失落王国手游下载v1.01.013 安卓版
乐高得宝世界免费下载-乐高得宝世界游戏下载v2.6.1 安卓版
宝宝爱识物学英语游戏下载-宝宝爱识物学英语最新版下载v1.0.0 安卓版
动物狂欢派对官方版下载-动物狂欢派对游戏下载v1.0 安卓版
feelunique下载安卓-feelunique中文官方版下载v3.2.0 安卓版
分钟视频官网下载-分钟视频app下载v1.1.33 安卓版