1. 首先打开vim的配置文件vimrc,并加入以下常用的配置:
cd ~
mkdir .vim
vim .vimrc
" 设置当文件被改动时自动载入 set autoread " quickfix模式 autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr> "代码补全 set completeopt=preview,menu "允许插件 filetype plugin on "共享剪贴板 set clipboard=unnamedplus "从不备份 set nobackup "make 运行 :set makeprg=g++ -Wall % "自动保存 set autowrite set ruler " 打开状态栏标尺 set cursorline " 突出显示当前行 set magic " 设置魔术 set guioptions-=T " 隐藏工具栏 set guioptions-=m " 隐藏菜单栏 "set statusline= %<%F[%1*%M%*%n%R%H]%= %y %0(%{&fileformat} %{&encoding} %c:%l/%L%) " 设置在状态行显示的信息 set foldcolumn=0 set foldmethod=indent set foldlevel=3 set foldenable " 开始折叠 " 不要使用vi的键盘模式,而是vim自己的 set nocompatible " 语法高亮 set syntax=on " 去掉输入错误的提示声音 set noeb " 在处理未保存或只读文件的时候,弹出确认 set confirm " 自动缩进 set autoindent set cindent " Tab键的宽度 set tabstop=4 " 统一缩进为4 set softtabstop=4 set shiftwidth=4 " 不要用空格代替制表符 set noexpandtab " 在行和段开始处使用制表符 set smarttab " 显示行号 set number " 历史记录数 set history=1000 "禁止生成临时文件 set nobackup set noswapfile "搜索忽略大小写 set ignorecase "搜索逐字符高亮 set hlsearch set incsearch "行内替换 set gdefault "编码设置 set enc=utf-8 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 "语言设置 set langmenu=zh_CN.UTF-8 set helplang=cn " 我的状态行显示的内容(包括文件类型和解码) set statusline=%F%m%r%h%w [FORMAT=%{&ff}] [TYPE=%Y] [POS=%l,%v][%p%%] %{strftime("%d/%m/%y - %H:%M")} set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%] " 总是显示状态行 set laststatus=2 " 命令行(在状态行下)的高度,默认为1,这里是2 set cmdheight=2 " 侦测文件类型 filetype on " 载入文件类型插件 filetype plugin on " 为特定文件类型载入相关缩进文件 filetype indent on " 保存全局变量 set viminfo+=! " 带有如下符号的单词不要被换行分割 set iskeyword+=_,$,@,%,#,- " 字符间插入的像素行数目 set linespace=0 " 增强模式中的命令行自动完成操作 set wildmenu " 使回格键(backspace)正常处理indent, eol, start等 set backspace=2 " 允许backspace和光标键跨越行边界 set whichwrap+=<,>,h,l " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位) set mouse=a set selection=exclusive set selectmode=mouse,key " 通过使用: commands命令,告诉我们文件的哪一行被改变过 set report=0 " 在被分割的窗口间显示空白,便于阅读 set fillchars=vert: ,stl: ,stlnc: " 高亮显示匹配的括号 set showmatch " 匹配括号高亮的时间(单位是十分之一秒) set matchtime=1 " 光标移动到buffer的顶部和底部时保持3行距离 set scrolloff=3 " 为C程序提供自动缩进 set smartindent
2. 选择molokai的模式的主题,毕竟好看的编辑环境给人赏心悦目,愉快地敲代码hh。这款主题很不错的。
首先在github上获取这个颜色的主题,终端输入命令获取:
git clone https://github.com/tomasr/molokai.git
当前目录下会有一个文件夹:molokai,进入到文件夹内部的color目录内,有个molokai.vim文件。
进入之前创建好的.vim目录内,在创建一个colors目录,把刚才那个颜色主题剪切或复制进来就可以了。
cd .vim
mkdir colors
mv ~/molokai/color/molorkai.vim ./colors
然后在.vimrc文件中加上:
"===========================选择molokai的模式============================ "let g:rehash256 = 1 let g:molokai_original = 1 "相较于上一个模式,个人比较喜欢此种模式 highlight NonText guibg=#060606 highlight Folded guibg=#0A0A0A guifg=#9090D0 "set t_Co=256 "set background=dark colorscheme molokai
这样就ok啦。
3. 安装vundle管理插件。
首先安装,终端输入:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
这样获取到了bundle后,就可以在配置文件.vimrc中编辑bundle的特性。在刚刚的.vimrc文件头部中添加如下语句:
"====================Vundle配置====================== set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required " To ignore plugin indent changes, instead use: "filetype plugin on " " Brief help " :PluginList - lists configured plugins " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate " :PluginSearch foo - searches for foo; append `!` to refresh local cache " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal " " see :h vundle for more details or wiki for FAQ " Put your non-Plugin stuff after this line
4. 安装clang插件
Clang-complete是一个为c/c++而生的代码自动完成的插件.当我们输入.和->后,会给我们提示。
我们需要先通过下面的命令安装其依赖的工具以及库:
sudo apt-get install libclang-dev clang
然后,通过Vundle安装它.在~/.vimrc文件中,在call vundle#begin()和call vundle#end()之间,添加这行Plugin 'rip-rip/clang_complete'.
call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' Plugin 'rip-rip/clang_complete' Plugin 'scrooloose/nerdtree' " All of your Plugins must be added before the following line call vundle#end() " required
同样,我们需要配置一下这个插件.还是在~/.vimrc文件中,添加其需要的库的位置.在此文件的最后,加上这一行:
let g:clang_library_path='/usr/lib/llvm-3.4/lib'
需要注意的是g:clang_library_path这个变量的值,要是你的机器上的安装路径,因为版本的原因,很可能和我这里的路径不同.你需要替换成你的路径,一般来说,和上面的路径相比,只是版本号不同.
然后,打开Vim,输入: PluginInstall,就会自动安装~/.vimrc这个文件中配置的插件。显示Done时即安装ok啦。
5. 安装插件Nerd tree
以左侧栏列出当前文件所在的目录树,类似IDE,可大大提高开发效率,实现效果如下:
首先在~/.vimrc文件中,在call vundle#begin()和call vundle#end()之间,添加这行Plugin 'scrooloose/nerdtree'
然后在后面添加其配置文件,如下:
call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' Plugin 'rip-rip/clang_complete' Plugin 'scrooloose/nerdtree' " All of your Plugins must be added before the following line call vundle#end() " required " NerdTree才插件的配置信息 ""将F2设置为开关NERDTree的快捷键 map <f2> :NERDTreeToggle<cr> ""修改树的显示图标 let g:NERDTreeDirArrowExpandable = '+' let g:NERDTreeDirArrowCollapsible = '-' ""窗口位置 let g:NERDTreeWinPos='left' ""窗口尺寸 let g:NERDTreeSize=30 ""窗口是否显示行号 let g:NERDTreeShowLineNumbers=1 ""不显示隐藏文件 ""打开vim时如果没有文件自动打开NERDTree autocmd vimenter * if !argc()|NERDTree|endif let g:NERDTreeHidden=0 ""当NERDTree为剩下的唯一窗口时自动关闭 autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif ""打开vim时自动打开NERDTree autocmd vimenter * NERDTree filetype plugin indent on " required
安装,打开vim,输入:PluginInstall,提示done表示安装成功。
最后介绍下Nerdtree的一些使用方法:
ctrl+w+w 光标在左右窗口切换 ctrl+w+r 切换当前窗口左右布局 o 打开关闭文件或者目录,如果是文件的话,光标出现在打开的文件中 O 打开结点下的所有目录 X 合拢当前结点的所有目录 x 合拢当前结点的父目录 i和s水平分割或纵向分割窗口打开文件 u 打开上层目录 t 在标签页中打开 T 在后台标签页中打开 p 到上层目录 P 到根目录 K 到同目录第一个节点 J 到同目录最后一个节点 m 显示文件系统菜单(添加、删除、移动操作) ? 帮助 :q 关闭
ok,以上就是一些关于vim的简单配置及插件使用,赶快写个.cpp文件试一试手感把哈哈。