引用请注明出处:http://blog.csdn.net/int64ago/article/details/7273108
- 本文不指导你如何使用vim,初学者可以参考此教程,非常适合入门!
- 一般linux发行版都安装vim了,如果没有不知道有没有安装就直接安装:sudo yum install vim
- 下载vim_bak.tar.gz到~/Downloads目录,执行:cd ~Downloads;tar -xvf vim_bak_tar.gz;mv vim ~/.vim;mv vimrc ~/.vimrc
- 安装插件ctags、cscope:sudo yum install ctags cscope,待会就看到有什么用了
- vi .vimrc,根据需要修改配置文件,如果平时用的最多的是c/c++编程,那么这些基本上用我已经配置好的就足够了
- 下面我简单解释下配置文件:
"去点有关vi一致性模式,避免以前版本的一些bug和局限 set nocompatible "显示行号 "set number "检测文件的类型 filetype on "记录历史的行数 set history=1000 "背景使用黑色 set background=dark "语法高亮显示 syntax on "自动对齐 set autoindent set cindent "智能选择对齐方式 set smartindent "tab为4个空格 set tabstop=4 "当前行之间交错时使用4个空格 set shiftwidth=4 "设置匹配模式,输入做括号会出现右括号 ""set showmatch "去掉vim的toolbar "set guioptions=T "去掉警告声音 set vb t_vb= "编辑时显示光标状态 set ruler "快速匹配 set incsearch "修改文件自动备份 if has("vms") set nobackup else set backup endif """""启动设置窗口大小 map <F2> :set lines =35 columns =110<CR> """""""""""""设置开启ctags""""""""""""" set tags=tags; set autochdir """"""""""""""omni自动补全""""""""""""" set nocp filetype plugin indent on map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> set completeopt=menu set tags+=~/.vim/MyTags/stltags :inoremap ( ()<ESC>i :inoremap ) <c-r>=ClosePair(')')<CR> :inoremap { {}<ESC>i :inoremap } <c-r>=ClosePair('}')<CR> :inoremap [ []<ESC>i :inoremap ] <c-r>=ClosePair(']')<CR> :inoremap < <><ESC>i :inoremap > <c-r>=ClosePair('>')<CR> :inoremap " ""<ESC>i :inoremap ' ''<ESC>i function ClosePair(char) if getline('.')[col('.') - 1] == a:char return "\<Right>" else return a:char endif endf """""""""""""""""Taglist设置""""""""""""""""" ""let Tlist_Auto_Open = 1 let Tlist_Ctags_Cmd = '/usr/bin/ctags' let Tlist_Show_One_File = 1 let Tlist_Exit_OnlyWindow = 1 """""""""""""""""winManager设置,整合各个窗口"""""""""""""""" ""let g:AutoOpenWinManager = 1 let g:winManagerWidth = 35 let g:winManagerWindowLayout='BufExplorer,FileExplorer|TagList' map <F3> :WMToggle<CR> """"""""""""""""""""""cscope设置"""""""""""""""""" set cscopequickfix=s-,c-,d-,i-,t-,e- if has("cscope") set csprg=/usr/bin/cscope set csto=1 set cst set nocsverb " add any database in current directory if filereadable("cscope.out") cs add cscope.out endif set csverb endif nmap <C-/>s :cs find s <C-R>=expand("<cword>")<CR><CR> nmap <C-/>g :cs find g <C-R>=expand("<cword>")<CR><CR> nmap <C-/>c :cs find c <C-R>=expand("<cword>")<CR><CR> nmap <C-/>t :cs find t <C-R>=expand("<cword>")<CR><CR> nmap <C-/>e :cs find e <C-R>=expand("<cword>")<CR><CR> nmap <C-/>f :cs find f <C-R>=expand("<cfile>")<CR><CR> nmap <C-/>i :cs find i ^<C-R>=expand("<cfile>")<CR>{1}lt;CR> nmap <C-/>d :cs find d <C-R>=expand("<cword>")<CR><CR>
- 基本上都加了注释,其中set number 是显示行号,我没启用,如果你需要可以启用;还有set tags+=~/.vim/MyTags/stltags这句的作用是加入stl自动补全,构建的过程可以参考这篇文章vim omni STL自动补全,不过你已经不用管了,因为我已经构建好了;map <F3> :WMToggle<CR>和map <F2> :set lines =35 columns =110<CR>这两句我设置了快捷键,作用如下:
上图是刚启动时的样子
按了F3之后就可以看到左边多了两个目录栏,这个对程序员来说是非常有用的,具体怎么用网上资料很多
上图是我按了F2之后的样子,因为按了F3之后很多被挡住了,F2的作用看配置文件都能知道,就是调整界面大小
- 好了,下面顺便演示下,智能补全的用法,我分四种情况:
- 1、前面申明过的变量或者函数名的补全;2、结构体等自建结构的补全;3、STL等标准库的补全;4、括号、引号等自动匹配补全。
- 对于第一种情况,写程序的过程中,直接用CTRL+p即可选择,对于第二种情况,如果想申明了结构体T,想在输入T.时弹出成员供选择,只需在用之前按一下:CTRL+F12,然后效果如图:
对于第三种情况,直接用就可以了,我前面说了,我已经构建好了,效果如图:
对于最后的括号、引号等补全,可以匹配的种类参考配置文件,要说明的是,不但可以输入匹配,删除左符号时又符号也会成对的被删除,当然要看情况,自己试试就知道了,其它还有很多功能就不说了吧,多试试,多查阅资料。