Windows 下的Vim(GVim) 及其配置 装载

来源:互联网 发布:淘宝女童模特照片 编辑:程序博客网 时间:2024/04/28 14:19

 http://www.cnblogs.com/Neoh/articles/1955827.html

 喜欢Linux的朋友们肯定忘不了经典的vi/vim编辑器,悠久的历史和原始化的操作……

  由于团队开发需要,很多很多程序员肯定都在windows下开发程序。最近在开发有关extjs、php组合的程序,项目组用的是netbeans开发工具。我主要负责php的代码,extjs还在学习当中。学习嘛,只是开发开发静态的程序,不需要劳师动众,用到netbeans(因为netbeans很慢很慢很慢...)。所以呢,就想到了GVim了。

  说干就干,首先下载,google随便一搜索,就有一大堆。毕竟他是大哥级的编辑器。

  安装完成以后就是配置工作了。自己一个个配置太麻烦了,毕竟我们都知道vim的配置项多的让人数不清。那就改人家的吧,我们不必浪费时间去重复研究苹果为什么会从树上掉下来。下面是我在网上找的一个配置文件,最原始的出处已经找不到了,因为实在有太多人引用这个文档了。

"# modified by Neoh

set helplang=cn            "使用中文帮助文档
set encoding=utf-8        "查看utf-8格式的帮助文档
set fileencodings=utf-8,gbk,utf8    "支持打开gbk格式的文件

colorscheme darkblue "设置窗口颜色
set guifont=Bitstream\ Vera\ Sans\ Mono\ 12    "设置字体为Bitstream Vera Sans Mono 12大小
set tabstop=4            "设置tab的跳数
"set expandtab            "使用空格代替tab 在写Makefile时需要有tab
set backspace=2            "设置退格键可用
set nu!                    "设置显示行号
set wrap                "设置自动换行
"set nowrap                "设置不自动换行
set linebreak            "整词换行,与自动换行搭配使用,效果很好
set whichwrap=b,s,<,>,[,]    "光标可以从行首和行尾跳到另一行去
"set list                "显示制表符
"set listchars=tab:.\ ,trail:.    "将制表符显示为'.   '
set autochdir            "自动设置当前目录为正在编辑的目录
set hidden                "自动隐藏没有保存的缓冲区,切换buffer时不给出保存当前buffer的提示
set scrolloff=5            "在光标接近底端或顶端时,自动下滚或上滚.

"Toggle Menu and Toolbar 隐藏菜单栏和工具栏
"set guioptions-=m
"set guioptions-=T
"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 hlsearch            "高亮显示查找结果
set incsearch            "增量查找
set gdefault            "替换时,使用g标签成为默认设置. 在替换时,替换本行所有符合的匹配
"========================================================================================================
"状态栏的设置
"========================================================================================================
set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]    "显示文件名: 总行数, 总的字符数
set ruler                "在编辑过程中, 在右下角显示光标位置的状态行
"========================================================================================================
"设置C++开发环境
"========================================================================================================
syntax enable            "打开语法高亮
syntax on                "打开语法高亮
                        "在.vim/syntax/c.vim文件中设置了运算符,函数名等高亮
set showmatch            "设置匹配模式, 相当于括号匹配
set smartindent            "智能对齐
set shiftwidth=4        "换行时,交错使用4个空格
set autoindent            "设置自动对齐
set ai!                    "设置自动缩进

"--------------------------------------------------------------------------------------------------------
"代码折叠
"--------------------------------------------------------------------------------------------------------

"--------------------------------------------------------------------------------------------------------
"窗口操作的快捷键
"--------------------------------------------------------------------------------------------------------
nmap wv        <C-w>v        "垂直分割当前窗口
nmap wc     <C-w>c        "关闭当前窗口
nmap ws        <C-w>s        "水平分割当前窗口

"--------------------------------------------------------------------------------------------------------
"插件配置
"--------------------------------------------------------------------------------------------------------

"TList
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1    "设置Tlist

"winmannger
let g:winManagerWindowLayout='FileExplorer|TagList'     "将winmanager设置成浏览器和TagList的组合
nmap wm :WMToggle<cr>         "映射winmanager的快捷键

"cscope
set cscopequickfix=s-,c-,d-,i-,t-,e-    "设定使用quickfix窗口来显示cscope的结果
"映射cscope的快捷键
nmap <F5>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <F5>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <F5>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <F5>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <F5>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <F5>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <F5>i :cs find i <C-R>=expand("<cfile>")<CR>$<CR>
nmap <F5>d :cs find d <C-R>=expand("<cword>")<CR><CR>

"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>

"映射QuickFix的快捷键
nmap <F6> :cw<cr>        "打开quickfix窗口
nmap <F8> :cn<cr>        "前一项
nmap <F7> :cp<cr>        "后一项

"MiniBufExp
"let g:miniBufExplMapWindowNavVim = 1            "使用<C-h,j,k,l>在窗口之间移动
"let g:miniBufExplMapWindowNavArrows = 1         "使用<C-箭头>在窗口之间移动

"BufTab
noremap <C-h> :bprev<CR>                         "使用<C-h>切换到上一个buffer
noremap <C-l> :bnext<CR>                         "使用<C-l>切换到下一个buffer
let g:buftabs_only_basename=1                    "只显示文件名,忽略路径名
set laststatus=2                                 "和下面的设置一起将buffer名显示在状态栏中
let g:buftabs_in_statusline=1

"A
nnoremap <silent> <F9> :AV<cr>       "将F9设置成头/源文件切换的快捷键,将窗口分为左右两个窗口,并打开.h/.c文件
let g:alternateSearchPath = 'sfr:./,sfr:../include,sfr:http://www.cnblogs.com/include,sfr:../source,sfr:../src,sfr:../inc'

"Grep
"将F3设置成Grep查找的快捷键
nnoremap <silent> <F3> :Grep<cr>
"设置补全
filetype plugin indent on
set completeopt=longest,menu
"设置超级补全
"let g:SuperTabRetainCompletionType=2
"let g:SuperTabDefaultCompletionType="<C-X><C-O>"

"设置Doxygen的注释
let g:DoxygenToolkit_blockHeader="--------------------------------------------------------------------------"
let g:DoxygenToolkit_blockFooter="----------------------------------------------------------------------------"
let g:DoxygenToolkit_authorName="W.Y.X"
let g:DoxygenToolkit_briefTag_funcName = "yes"
map <F4>a :DoxAuthor<cr>
map <F4>f :Dox<cr>
map <F4>b :DoxBlock<cr>
map <F4>c O/** */<Left><Left>


"设置robix阅读时的ctags和cscope的设置,有时间写一个脚本自动设置。
"脚本思路是将所有工程都放在/home/aleln/workspace/下面使用搜索来自动添加设置
"set tags=/home/aleln/workspace/robix3/tags
"cs add /home/aleln/workspace/robix3/cscope.out /home/aleln/workspace/robix3