vim 的安装及配置
Posted QIYUEXIN
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim 的安装及配置相关的知识,希望对你有一定的参考价值。
Frm :http://blog.csdn.net/g_brightboy/article/details/14229139#
简介
为了更加方便的学习和研究一个开源c++项目(当然Linux环境下),特地花了一两周的时间研究vim及其插件的配置和使用方法,整理出来:一来做个记录便于日后回顾查看,二来分享出来为大家提供方便。
vim是什么
vim是一款功能强大、支持各种插件、配置极为灵活的编辑器,且支持多种主流OS(linux、Unix、mac、windows),可用来各种编程预言的coding和文件编辑,用习惯了vim,你会体会到它是如此的高效和便捷。引用官网(www.vim.org)上vim的自我介绍说:
“Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.Vim is often called a "programmer‘s editor," and so useful for programming that many consider it an entire IDE. It‘s not just for programmers, though. Vim is perfect for all kinds of text editing, from composing email to editing configuration files. Despite what the above comic suggests, Vim can be configured to work in a very simple (Notepad-like) way, called evim or Easy Vim.”
本文主要通过一些示例介绍下如何定制自己专属的基于vim的IDE编程环境(主要针对c/c++,其他语言亦可采用相同的思路)。下面我们就一步一步来介绍,一砖一瓦从零开始建造我们基于VIM的友好的IDE环境。
vim的下载与安装
1. 在线安装
直接shell中输入如下命令:
sudo apt-get install vim (ubuntu) yum install vim (redHat/Fedora/CentOS)
linux会自动检测并下载安装。apt-get 安装出错,点这里。
2 手动下载编译安装
截止当前最新版本是7.4(vim-7.4.tar.bz2),可在windows环境下载好,拷贝至linux环境安装,或直接linux命令行下载。这里给出 linux直接下载并编译安装(以下均为shell命令):
1). wget下载
wget ftp://ftp.vim.org/ftp/pub/vim/unix/vim-7.4.tar.bz2
(或用ftp命令登陆ftp://ftp.vim.org,get命令获取)
2). 解压
bunzip2 vim-7.4.tar.bz2
3). 解压
tar xvf vim-7.4.tar
4). 进入vim74(解压后的)目录,执行
./configure --disable-selinux --enable-cscope
(./configure -help 查看后面参数选项的含义)
5). 编译
make
6). 安装
make install
只要不出现error即代表成功安装,也可直接用vim命令来检测,或whatis vim(whereis vim)查看。通常情况下,许多发行版会默认安装vim,则可省略上述步骤。
vim的初始化配置.vimrc
1. 存放位置
linux环境下vim的初始化配置文件为.vimrc, 通常有两个:系统版本和用户版本,前者不同发行版linux会有不同,一般位于/etc/vimrc,是整个系统vim的默认配置;后者位于~/.vimrc,是当前用户的vim配置,会覆盖系统配置。关于vim的其他配置参数文件位于/usr/local/share/vim/下,可进入vim,在命令模式下键入
:version (查看基本配置路径)
:echo $VIM
:echo $HOME(查看具体路径值)
~/.vimrc有时并不存在,此时用户可以建立一个.vimrc,放入主目录以实现自己的vim配置。
2. 主要命令参数 .
vimrc通常用于指定vim的编辑参数和外观环境。下面列出常用的命令参数及其含义:
"打开语法高亮 syntax on "使用配色方案 colorscheme desert "打开文件类型检测功能 filetype on "不同文件类型采用不同缩进 filetype indent on "允许使用插件 filetype plugin on filetype plugin indent on "关闭vi模式 set nocp "与windows共享剪贴板 set clipboard+=unnamed "取消VI兼容,VI键盘模式不易用 set nocompatible "显示行号, 或set number set nu "历史命令保存行数 set history=100 "当文件被外部改变时自动读取 set autoread "取消自动备份及产生swp文件 set nobackup set nowb set noswapfile "允许使用鼠标点击定位 set mouse=a "允许区域选择 set selection=exclusive set selectmode=mouse,key "高亮光标所在行 set cursorline "取消光标闪烁 set novisualbell "总是显示状态行 set laststatus=2 "状态栏显示当前执行的命令 set showcmd "标尺功能,显示当前光标所在行列号 set ruler "设置命令行高度为3 set cmdheight=3 "粘贴时保持格式 set paste "高亮显示匹配的括号 set showmatch "在搜索的时候忽略大小写 set ignorecase "高亮被搜索的句子 set hlsearch "在搜索时,输入的词句的逐字符高亮(类似firefox的搜索) set incsearch "继承前一行的缩进方式,特别适用于多行注释 set autoindent "为C程序提供自动缩进 set smartindent "使用C样式的缩进 set cindent "制表符为4 set tabstop=4 "统一缩进为4 set softtabstop=4 set shiftwidth=4 "允许使用退格键,或set backspace=2 set backspace=eol,start,indent set whichwrap+=<,>,h,l "取消换行 set nowrap "启动的时候不显示那个援助索马里儿童的提示 set shortmess=atI "在被分割的窗口间显示空白,便于阅读 set fillchars=vert:\ ,stl:\ ,stlnc: "光标移动到buffer的顶部和底部时保持3行距离, 或set so=3 set scrolloff=3 "设定默认解码 set fenc=utf-8 set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 "设定字体 set guifont=Courier_New:h11:cANSI set guifontwide=新宋体:h11:cGB2312 "设定编码 set enc=utf-8 set fileencodings=ucs-bom,utf-8,chinese set langmenu=zh_CN.UTF-8 language message zh_CN.UTF-8 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim "自动补全 filetype plugin indent on set completeopt=longest,menu "自动补全命令时候使用菜单式匹配列表 set wildmenu autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete autocmd FileType python set omnifunc=pythoncomplete#Complete autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS autocmd FileType html set omnifunc=htmlcomplete#CompleteTags autocmd FileType css set omnifunc=csscomplete#CompleteCSS autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags autocmd FileType java set omnifunc=javacomplete#Complet
vim的语法高亮/配色方案
vim的配色分两部分:编辑环境配色和文本区域配色
1) vim编辑环境配色:
比如Vim编辑区的前景背景色、状态栏颜色、错误提示颜色、查找、光标、圈选区、行号、折叠等的颜色这里列出几个配色组名及其含义(全部的详细信息查看帮助文件 :help hi 查找 "highlight-group" 即可):
Cursor 光标下的字符颜色
CursorLine 光标所在行颜色
ErrorMsg 命令行出现的错误信息提示
IncSearcg 被搜索字符的颜色
Normal 普通字符
Pmenu 弹出的提示条目颜色
PmenuSel 弹出的提示条目中被选中条目的颜色
SpellBad 拼写错误字符颜色
Visual 可视化模式下选中字符的颜色
Menu 菜单栏的颜色字体
Scrollbar 滚动条的颜色
2) 文本区域配色:
可编辑的文本区域的字符配色(详细信息请执行 :help hi搜索 "*comment")
由于配色种类较多,vim默认分了几大类(帮助信息中带*的):
*Comment 注释 *Constant 常量 *statement 常用关键字标示符 *PrePoc 预处理符号 *Type 数据类型
下面是较为详细的组别:
String 字符串常量: "string abc\n" Character 单个字符常量: ‘c‘, ‘\n‘ Number 数字常量: 234, 0xff Boolean 布尔常量: TRUE, false Function 函数名 Conditional 条件关键字: if, then, else, endif, switch, etc. Repeat 循环关键字: for, do, while, etc. Operator 操作符: "sizeof", "+", "*", etc. Exception 异常关键字: try, catch, throw
这样便可以更为详细的为每一个组别进行配色。
查看当前的vim配色情况
:hi/highlight
另外,文本区域的配色可以关闭,但环境配色不能,通常vim给定的默认可选配色方案中同时包含了以上两个方面。
下面就一条具体的配色命令(对数据类型配色)解释每个字段的含义:
hi Type cterm=none ctermbg=White ctermfg=Green guibg=Gray guifg=Red
hi: highlight的缩写,配色命令
Type: 配色组名,可以自定义(修改$VIMRUNTIME/syntax/下对应的文件可改变不同语言的高亮方案)其内容
cterm,ctermbg,ctermfg,guibg,guifg: 代表了不同显示环境
White,Green: 表示颜色(也可以用数字或者类似与html的16进制颜色表示方法)
显示环境有三种:黑白终端,彩色终端,图形界面,三种环境下参数名称如下:
term attributes in a B&W terminal cterm attributes in a color terminal ctermfg foreground color in a color terminal ctermbg background color in a color terminal gui attributes in the GUI guifg foreground color in the GUI guibg background color in the GUI
其中term仅有黑白两色,cterm下颜色较为单一,GUI模式颜色丰富
若要仅修改某种语言(c、Java、pascal)的配色,则在配色组名前加语言名称即可,比如对c/c++语言的数据类型单独配色:
hi cType ctermfg=Blue
若是修改java/pascal的数据类型,则相应的将cType替换为javaType/pascalType即可。
对于文本区域的语法高亮(即配色),我们可根据需求特殊化定制,比如自定义组: myUniqueWord, mySymbol,使用syn/syntax命令
syn keyword myUniqueWord gang Gang swagger syn match mySymbol "[,.;(){}[]]" (可使用正则表达式)
vim目前7.4版本给出的可直接使用(colorscheme命令加于.vimrc中即可)的配色方案位于目录:/usr/local/share/vim/vim74/colors,比如使用desert.vim中的配色,则于.vimrc中添加一行
colorscheme desert
即可
网友提供的配色方案列表(带效果图),可参考:
http://vimcolorschemetest.googlecode.com/svn/html/index-c.html
http://www.oschina.net/news/32306/10-vim-color-schemes-you-need-to-own
hi/highlight
命令,可查看当前vim的颜色配置
:help hi/highlight
显示帮助文件(syntax.txt,可访问官方在线版http://vimdoc.sourceforge.net/htmldoc/syntax.html)内容,介绍了颜色配置脚本中关键字的含义和使用方法
相同配色vim脚本在不同的终端下可能显示不太一致,这是由终端下颜色设置不一致导致的,属正常情况。
vim的代码补全、结构化视图
(基于autocomplpop + omnicppcomplete + ctags + taglist + cscope + NERDtree)
先一句话介绍每个插件的用途:
--> ctags: 为源码的变量/对象、结构体/类、函数/接口、宏等产生索引,以便快速查找和定位
- Official site http://ctags.sourceforge.net/
- VIM online http://www.vim.org/scripts/script.php?script_id=610
--> taglist:提供源码的结构化浏览功能
- Official site http://vim-taglist.sourceforge.net/
- VIM online http://www.vim.org/scripts/script.php?script_id=273
--> AutoComplPop:代码补全提示自动弹出
- VIM online http://www.vim.org/scripts/script.php?script_id=1879
--> OmniCppComplete:基于ctags的索引文件提供全面的c++(类成员、继承、this指针、.->访问符等)的代码补全功能
- VIM online http://www.vim.org/scripts/script.php?script_id=1520
--> cscope:对代码产生索引数据库,提供对象接口字符串的查找,并用列表显示(:cw - quickfix)
- Official site http://cscope.sourceforge.net/
- VIM online http://www.vim.org/scripts/script.php?script_id=4082
--> NERDtree:以树形结构显示文件系统的目录(同windows的资源管理器),并可以在目录间切换
- VIM online http://www.vim.org/scripts/script.PHP?script_id=1658
vim支持的几乎所有plugin&&utility都在这里可以下载到(主要以vim脚本的形式)
http://www.vim.org/scripts/index.php
下面逐一介绍各个插件的安装和使用方法
1) ctags
2) taglist
3) AutoComplPop
4) OmniCppComplete
5) cscope
6) NERDtree
(待续)
由于后续各个插件的介绍篇幅较长,单独形成博文,请参考:
ctags 的安装和使用方法,请猛击:http://blog.csdn.net/g_brightboy/article/details/16830395
taglist的安装和使用方法,请猛击:http://blog.csdn.net/g_brightboy/article/details/16843899
AutoComplPop和OmniCppComplete的安装和使用方法,请用力敲鼠标左键:http://blog.csdn.net/g_brightboy/article/details/19498983
以上是关于vim 的安装及配置的主要内容,如果未能解决你的问题,请参考以下文章
VIM 代码自动补全, YouCompleteMe安装及配置