GVIM在Windows上也是强大的IDE


?

不用多说 

我用配置完的一个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

配置文件东拼西凑没有整理 不要见笑啊
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值