不用多说
我用配置完的一个VIM包 里面含有很多的插件 下载地址
下载后直接解药到D盘下酒可以使用 要是不在这个目录下 请你更改对应的配置文件:
下面是配置文件的内容:
if(has("win32") || has("win95") || has("win64") || has("win16")) "判定当前操作系统类型
let g:iswindows=1
else
let g:iswindows=0
endif
autocmd FileType java set omnifunc=javacomplete#Complete
"设定windows下 gvim 启动时最大化
autocmd GUIEnter * simalt ~x
"基本配置
set wildmenu
" 隐藏掉菜单和工具条。
set guioptions-=M
set guioptions-=F
map <silent> <F2> :if &guioptions =~# 'T' <Bar>
\set guioptions-=T <Bar>
\set guioptions-=m <bar>
\else <Bar>
\set guioptions+=T <Bar>
\set guioptions+=m <Bar>
\endif<CR>
" 启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI
" browsedir设置
set browsedir=buffer
" 载入文件类型插件
filetype plugin on
" 自动格式化设置
filetype indent on
set autoindent
set smartindent
" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
" 当buffer被丢弃时隐藏
set bufhidden=hide
" C++头文件识别
au BufEnter /usr/include/c++/* setf cpp
au BufEnter /usr/include/g++-3/* setf cpp
" GNU标准
"au BufEnter /usr/* call GnuIndent()
" 窗口最大化
"autocmd GUIEnter * simalt ~x
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l
" 使回格键(backspace)正常处理indent, eol, start等
set backspace=eol,start,indent
" 自动补全括号,包括大括号
: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>
" 打开文件时,总是跳到退出之前的光标处
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
if has("gui_running")
set showtabline=2
map! tn tabnew
nmap <C-c> :tabclose<CR>
endif
" 用浅色高亮当前行
if has("gui_running")
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul
endif
" 标签页只显示文件名
function ShortTabLabel ()
let bufnrlist = tabpagebuflist (v:lnum)
let label = bufname (bufnrlist[tabpagewinnr (v:lnum) -1])
let filename = fnamemodify (label, ':t')
return filename
endfunction
"设置= + - * 前后自动空格
"设置,后面自动添加空格
au FileType python inoremap <buffer>= <c-r>=EqualSign('=')<CR>
au FileType python inoremap <buffer>+ <c-r>=EqualSign('+')<CR>
au FileType python inoremap <buffer>- <c-r>=EqualSign('-')<CR>
au FileType python inoremap <buffer>* <c-r>=EqualSign('*')<CR>
au FileType python inoremap <buffer>/ <c-r>=EqualSign('/')<CR>
au FileType python inoremap <buffer>> <c-r>=EqualSign('>')<CR>
au FileType python inoremap <buffer>< <c-r>=EqualSign('<')<CR>
au FileType python inoremap <buffer>: <c-r>=Swap()<CR>
au FileType python inoremap <buffer>, ,<space>
"实现括号的自动配对后防止重复输入),适用python
function! ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endf
"设置养眼的模式
colorscheme evening
"增强模式中的命令行自动完成操作
set foldmethod=manual
"设定折叠方式为手动
set helplang=cn
"设置帮助的语言为中文
set cin
"实现C程序的缩进
set sw=4
"设计(自动) 缩进使用4个空格
set sta
"插入<tab>时使用'shiftwidth'
set backspace=2
"指明在插入模式下可以使用<BS>删除光标前面的字符
syntax enable
"设置高亮关键字显示
set nocompatible
"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
set number
"显示行号
filetype on
"检测文件的类型
map <fe> :q
set history=1000
""记录历史的行数
" 在搜索的时候忽略大小写
set ignorecase
set background=dark
"背景使用黑色
syntax on
"语法高亮度显示
set autoindent
set smartindent
"上面两行在进行编写代码时,在格式对起上很有用;
"第一行,vim使用自动对起,也就是把当前行的对起格式应用到下一行;
"第二行,依据上面的对起格式,智能的选择对起方式,对于类似C语言编写上很有用
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
"第一行设置tab键为4个空格,第二行设置当行之间交错时使用4个空格
set tabstop=4
set shiftwidth=4
set showmatch
" 高亮字符,让其不受100列限制
:highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white
:match OverLength '\%101v.*'
" 总是显示状态行
set laststatus=2
" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
"highlight StatusLine guifg=SlateBlue guibg=White
highlight StatusLineNC guifg=Gray guibg=White
" 我的状态行显示的内容(包括文件类型和解码)
set statusline=[%n]%<%f%y%h%m%r%=[%b\ 0x%B]\ %l\ of\ %L,%c%V\ Page\ %N\ %P
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=3
" 设置命令行高度为2行
set cmdheight=1
"设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号
set ruler
"在编辑过程中,在右下角显示光标位置的状态行
set incsearch
"查询时非常方便,如要查找book单词,当输入到/b时,会自动找到第一
"个b开头的单词,当输入到/bo时,会自动找到第一个bo开头的单词,依
"次类推,进行查找时,使用此设置会快速找到答案,当你找要匹配的单词
"时,别忘记回车。
set enc=chinese
"设置编码为中文
" 增强检索功能
set tags=./tags,./../tags,./**/tags
set winaltkeys=no
"Alt组合键不映射到菜单上
set helplang=cn
filetype plugin on
"禁止自动改变当前Vim窗口的大小
let Tlist_Inc_Winwidth=0
"把方法列表放在屏幕的右侧
let Tlist_Use_Right_Window=1
"让当前不被编辑的文件的方法列表自动折叠起来, 这样可以节约一些屏幕空间
let Tlist_File_Fold_Auto_Close=1
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
"映射F4为功能键调出tages浏览器
"映射F3为功能键调出winmanager的文件浏览器
"let g:winManagerWindowLayout='FileExplorer|TagList' "你要是喜欢这种布局可以注释掉这一行
map <F4> :TlistToggle<cr>
map <F3> :WMToggle<cr>
"将当前的工程的tags导入
set tags=.\tags
"将系统已经生成的tags导入
set tags+=D:\Vim\vimfiles\tags\stl_tags
set tags+=D:\Vim\vim72\tags\cpp_src\tags
set tags+=D:\Vim\
map <F10> :call Do_CsTag()<CR>//以后按F10就可以对一个工程进行tags索引建立并且引入了
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>$<CR>
nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR>
function Do_CsTag()
if(executable('cscope') && has("cscope") )
if(g:iswindows!=1)
silent! execute "!find . -name '*.h' -o -name '*.c' -o -name '*.cpp' -o -name '*.java' -o -name '*.cs' -o -name '*.cxx' -o -name '*.hxx'> cscope.files"
else
silent! execute "!dir /b *.c,*.cpp,*.h,*.java,*.cs >> cscope.files"
endif
silent! execute "!cscope -bq"
if filereadable("cscope.out")
execute "cs add cscope.out"
endif
endif
endf
"定义源代码格式化
map <F11> :call FormartSrc()<CR>
"定义FormartSrc()
func FormartSrc()
exec "w"
"C程序,Perl程序,Python程序
if &filetype == 'c'
exec "!astyle --style=gnu --suffix=none %"
exec "e! %"
elseif &filetype == 'cpp'
exec "!astyle --style=gnu --suffix=none %"
exec "e! %"
elseif &filetype == 'perl'
exec "!astyle --style=gnu --suffix=none %"
exec "e! %"
elseif &filetype == 'py'
exec "!astyle --style=gnu --suffix=none %"
exec "e! %"
"Java程序
elseif &filetype == 'java'
exec "!astyle --style=java --suffix=none %"
exec "e! %"
elseif &filetype == 'jsp'
exec "!astyle --style=gnu --suffix=none %"
exec "e! %"
elseif &filetype == 'xml'
exec "!astyle --style=gnu --suffix=none %"
exec "e! %"
elseif &filetype == 'html'
exec "!astyle --style=gnu --suffix=none %"
exec "e! %"
elseif &filetype == 'htm'
exec "!astyle --style=gnu --suffix=none %"
exec "e! %"
endif
endfunc
"结束定义FormartSrc
"设置tab的快捷键
"Shift+t为新建一个标签,按两次Shirt+t为跳转标签
map <S-t> :tabnew .<CR>
map <S-t><S-t> <ESC>:tabnext<CR>
"设置建立新行但是不插入
map <S-o> o<ESC><CR>
"设置全选快捷键
map <C-a> ggVG
"设置快速不保存退出快捷键
map <S-q><S-q> :q!<CR>:q!<CR>:q!<CR>
"替换
map <C-H> :L1,L2s/src/tar/g
imap <C-H> <Esc><C-H>
"设置快速注释键
"set completeopt=menu"详细注释
"F12是在该行后边添加注释,Shift+F12为注释掉该行,两次Shift+F12是去掉改行的注释,然后将光标置于下一行
nnoremap <silent> <S-F9> :A<CR>
map <S-F12> <ESC>I//<ESC><CR>
map! <S-F12> <ESC>I//<ESC><CR>
map <S-F12><S-F12> 02x<ESC><CR>
map! <S-F12><S-F12> <ESC>02x<ESC><CR>
map <F12> <ESC>$a//
map! <F12> <ESC>$a//
setlocal omnifunc=javacomplete#Complete
autocmd Filetype java set completefunc=javacomplete#CompleteParamsInf
inoremap <buffer> <C-X><C-U> <C-X><C-U><C-P>
inoremap <buffer> <C-S-Space> <C-X><C-U><C-P>
autocmd Filetype javascript,jsp,cpp inoremap <buffer> . .<C-X><C-O><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> A A<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> B B<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> C C<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> D D<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> E E<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> F F<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> G G<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> H H<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> I I<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> J J<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> K K<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> L L<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> M M<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> N N<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> O O<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> P P<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> Q Q<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> R R<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> S S<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> T T<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> U U<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> V V<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> W W<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> X X<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> Y Y<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> Z Z<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> a a<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> b b<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> c c<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> d d<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> e e<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> f f<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> g g<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> h h<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> i i<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> j j<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> k k<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> l l<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> m m<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> n n<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> o o<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> p p<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> q q<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> r r<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> s s<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> t t<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> u u<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> v v<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> w w<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> x x<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> y y<C-N><C-P>
autocmd Filetype java,javascript,css,html,xml,cpp inoremap <buffer> z z<C-N><C-P>
"设置编译快捷键
"F5为make,两次F5为make clean
"F6为quickfix,查看详细信息, 两次F6关闭详细信息
"F7为下一个结果,两次F7为上一个结果
"F8为编译和运行单个程序、两次F8为调试
map <F5> :make<CR>
map <F5><F5> :make clean<CR>
map <F6> :cw<CR>
map <F6><F6> :ccl<CR>
map <F7> :cn<CR>
map <F7><F7> :cp<CR>
map <F8> :call CompileRun()<CR>
map <F8><F8> :call Debug()<CR>
map <leader>cd :cd %:p:h<cr>
autocmd FileType cpp map <F8> <Esc>:w!<CR>:!compile_cpp.bat %<CR>//这个地反是值得注意的 要根据自己的机器情况更改
"定义CompileRun函数,用来对不用外接库的小程序进行编译和运行,自己可以根据文件名扩展或实际情况修改参数
set autochdir
func CompileRun()
exec "w"
"C程序
if &filetype == 'c'
exec "!gcc % -g -o %<"
exec "!.\/%<"
endif
if &filetype == 'cpp'
exec "!g++ % -g -o %<"
exec "!.\/%<"
endif
if &filetype == 'java'
exec "!javac -verbose %"
exec "!java %<"
endif
endfunc
"结束定义CompileRun
"定义Debug函数,用来调试小程序
func Debug()
exec "w"
"C程序
if &filetype == 'c'
exec "!rm %<"
exec "!gcc % -g -o %<"
exec "!gdb %<"
elseif &filetype == 'cpp'
exec "!rm %<"
exec "!g++ % -g -o %<"
exec "!gdb %<"
"Java程序
exec "!rm %<.class"
elseif &filetype == 'java'
exec "!javac %"
exec "!jdb %<"
endif
endfunc
"定义dubug结束
autocmd BufNewFile *.cc,*.sh,*.java exec ":call SetTitle()"
"新建.cc,.java,.sh,
"定义函数SetTitle,自动插入文件头
func SetTitle()
"如果文件类型为.sh文件
if &filetype == 'sh'
call setline(1, "\#!/bin/bash")
call append(line("."), "\#########################################################################")
call append(line(".")+1, "\# Author: gnuhpc(http://blog.csdn.net/gnuhpc)")
call append(line(".")+2, "\# Created Time: ".strftime("%c"))
call append(line(".")+3, "\# File Name: ".expand("%"))
call append(line(".")+4, "\# Description: ")
call append(line(".")+5, "\#########################################################################")
call append(line(".")+6, "")
else
call setline(1, "/*************************************************************************")
call append(line("."), " Author: gnuhpc(http://blog.csdn.net/gnuhpc)")
call append(line(".")+1, " Created Time: ".strftime("%c"))
call append(line(".")+2, " File Name: ".expand("%"))
call append(line(".")+3, " Description: ")
call append(line(".")+4, " ************************************************************************/")
call append(line(".")+5, "")
endif
endfunc
"自动将shell脚本设置为可执行权限
au BufWritePost * if getline(1) =~ "^#!" | if getline(1) =~ "/bin/" | silent !chmod a+x <afile> | endif | endif
if has("autocmd")
autocmd BufRead *.txt set tw=78
autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal g'\"" |
\ endif
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"vim7.1在windows下的编码设置。
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set encoding=utf-8
set fileencodings=utf-8,chinese,latin-1
if has("win32")
set fileencoding=utf-8
else
set fileencoding=gbk,utf-8
endif
"解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"解决consle输出乱码
language messages zh_CN.utf-8
配置文件东拼西凑没有整理 不要见笑啊