Vim启用语法高亮以及C++关键字配色方案
1、 何为Vim语法高亮
Vim本身支持语法高亮功能,有的Vim配置文件中将语法高亮功能禁用了,需要用户在配置文件中启用。
另一点就是语法高亮只是让Vim具有关键字、字符串、数字等的色彩变化的能力,而关键字、字符串、函数名、数字等各需要使用什么样的颜色配置是由一个叫做“配色方案”的文件决定,这中文件一般被命名为xxx.vim。
2、 何为配色方案
配色方案就是一些配色代码和指令,当Vim启动时会加载.vimrc这个文件,此文件中的一条设置可以加载配色方案,从而在编写代码时才会有关键字、函数名、字符串等的颜色变化。
现列举一个C++的配置方案,代码放置在本文“材料”一节处,用户只需复制其中的代码保存在一个文件中即可(如cpp.vim)供下面的案例操作。
1、 vim的属性设置 ,掌握vim的属性概念和设置属性的方法:
(1)如果你的/home/xxx用户名/ 下没有.vimrc,请在你的home目录下创建.vimrc方法:
用vim自带的配置文件为蓝本配置:cp /usr/share/vim/vim73/vimrc_example.vim /home/xxx用户名/.vimrc
(路径中的vim73中的73为vim的版本号,根据实际情况自己调整)
打开/home/xxx用户名/.vimrc文件,写入你需要开启的设置,如
set nocompatible "关闭vi兼容模式,可以启用方向键和Backspace
syntax on "自动语法高亮(对于编程语言中的关键字高亮需要下载相应的编程语言对应的"配色方案.vim文件",参见4.C++语言关键字配色 )
set number "显示行号
colorscheme cpp.vim "设定配色方案为cpp.vim
set cursorline " 突出显示当前行
set ruler " 打开状态栏标尺
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
set tabstop=4 " 设定 tab 长度为 4
set nobackup " 覆盖文件时不备份
2、 vim配色方案,掌握vim配色方案这个概念
(1)“配色方案”概念:配色方案其实质就是一些vim程序的可执行脚本代码,纯文本格式的,把代码保存成文本文件,然后缀改为.vim即可。
(2)增加配色方案首先查看你的系统中自带的有哪些,执行命令 ls -l /usr/share/vim/vim70/colors/可以看到(vim70中的70为vim的版本号,根据你安装的实际情况确定这个数字是多少)
-rw-r--r-- 1 root root 2588 2011-03-06 blue.vim
-rw-r--r-- 1 root root 2809 2011-03-06 darkblue.vim 略
(3)如果觉得配色方案太少,可以从外部下载配色方案,比如Vim官网
3、 vim启用语法高亮,让你开启vim语法高亮的开关:
1) 打开打开/home/xxx用户名/.vimrc文件,添加以下语句来使得语法高亮显示:syntax on
4、 C++编程语言关键字配色,使vim能识别C++编程语言中的关键字并配色
1.寻找C/C++关键字配色方案的 代码或.vim文件
可以到vim.org 官网搜索
2.下载.vim文件或将配色方案代码保存成.vim格式的文本文件(依据自己使用的编程语言选择对应的配色方案文件.vim)
3.将.vim文件放置在:/usr/share/vim/vim74/colors 路径下(vim74中的74为版本号,请根据实际情况而定)
4.在.vimrc文件(参见 1.vim的属性设置 )中写入如下代码:
set nocompatible "关闭vi兼容模式,可以启用方向键和Backspace 可选
syntax on "启用自动语法高亮 必选
set number "显示行号 可选
colorscheme cpp "设定配色方案 cpp.vim C++代码关键字高亮配色方案文件,已经提供
5.提供一个C++关键字高亮的cpp.vim下载地址
http://www.vim.org/scripts/script.php?script_id=16406.重新启动vim即可
5、其它的编程语言关键字高亮并配色参见步骤4
1、" Vim syntax file
" Language: C++ special highlighting for STL classes and methods
" Maintainer: Nathan Skvirsky
" Last Change: 2006 Oct 22
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Read the C syntax to start with
if version < 600
so <sfile>:p:h/c.vim
else
runtime! syntax/c.vim
unlet b:current_syntax
endif
" C++ extentions
syn keyword cppSTL
syn keyword cppStatement new delete this friend using
syn keyword cppAccess public protected private
syn keyword cppType inline virtual explicit export bool wchar_t
syn keyword cppExceptions throw try catch
syn keyword cppOperator operator typeid
syn keyword cppOperator and bitor or xor compl bitand and_eq
or_eq xor_eq not not_eq
syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*<"me=e-1
syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*$"
syn keyword cppStorageClass mutable
syn keyword cppStructure class typename template namespace
syn keyword cppNumber NPOS
syn keyword cppBoolean true false
" The minimum and maximum operators in GNU C++syn match cppMinMax "[<>]?"
" Default highlighting
if version >= 508 || !exists("did_cpp_syntax_inits")
if version < 508
let did_cpp_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink cppAccess cppStatement
HiLink cppCast cppStatement
HiLink cppExceptions Exception
HiLink cppOperator Operator
HiLink cppStatement Statement
HiLink cppSTL Identifier
HiLink cppNCBI Special
HiLink cppType Type
HiLink cppStorageClass StorageClass
HiLink cppStructure Structure
HiLink cppNumber Number
HiLink cppBoolean Boolean
delcommand HiLink
endif
let b:current_syntax = "cpp"
" vim: ts=8