我的VIM配置方案



我的VIM配置方案
 
前几天有位谦虚的高人让我贴一下我的vim配置,就在这里贴一下好了,
 
001
set nocp    "设置兼容
002
set expandtab   "设置tab
003  www.2cto.com  
set shiftwidth=4    "设置tab的间隔
004
set tabstop=4   "四个空格代表一个tab
005
set sts=4
006
set showmatch   "在输入括号时光标会短暂地跳到与之相匹配的括号处
007
set autoindent  "设置自动缩进
008
" set smartindent "设置智能缩进
009
set nowrap    "设置自动换行
010
set tw=500
011
set lbr
012
set number  "设置是否显示行
013
set guifont=Monospace\ 11  "设置字体大小
014
set encoding=utf-8  "设置编码为utf-8
015
set fileencoding=utf-8
016
set fileencodings=ucs-bom,utf-8,GB18030,cp936,big5,euc-jp,euc-kr,latin1
017  www.2cto.com  
set helplang=cn "帮助中文支持
018
colorscheme tango "设置主体颜色
019
"set mouse=v " 设置粘贴和复制
020
 
021
"自动补全配置
022
autocmd FileType python set omnifunc=pythoncomplete#Complete
023
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
024
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
025
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
026
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
027
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
028
autocmd FileType c set omnifunc=ccomplete#Complete
029
 
030
" =================================进行Taglist的设置<Begin>============================
031
map <F3> :TlistToggle<CR>
032  www.2cto.com  
"map <F3> :silent! Tlist<CR>             "按下F3就可以呼出了
033
"let Tlist_Ctags_Cmd='/usr/bin/ctags'    "因为我们放在环境变量里,所以可以直接执行
034
let Tlist_Use_Right_Window=1            "让窗口显示在右边,0的话就是显示在左边 
035
"let Tlist_Show_One_File=1               "让taglist可以同时展示多个文件的函数列表
036
"let Tlist_File_Fold_Auto_Close=1        "非当前文件,函数列表折叠隐藏
037
"let Tlist_Exit_OnlyWindow=1             "当taglist是最后一个分割窗口时,自动推出vim
038
"let Tlist_Process_File_Always=0         "是否一直处理tags.1:处理;0:不处理 
039
"let Tlist_Inc_Winwidth=0                "不是一直实时更新tags,因为没有必要 
040
" =================================进行Taglist的设置<End>==============================
041
 
042
 
043
 
044
 
045
" ############################键盘映射设置区域###############################
046
map <F2> :NERDTreeToggle<CR>
047  www.2cto.com  
map <F4> t :NERDTreeMirror<CR>
048
 
049
 
050
" 对应使用函数的配置
051
set guitablabel=%{ShortTabLabel()}
052
function ShortTabLabel ()
053
  let bufnrlist = tabpagebuflist (v:lnum)
054
  let label = bufname (bufnrlist[tabpagewinnr (v:lnum) -1])
055
  let filename = fnamemodify (label, ':t')
056  www.2cto.com  
  return filename
057
endfunction
058
 
059
set tabline=%!MyTabLine()
060
function MyTabLine()
061
  let s = ''
062
  for i in range(tabpagenr('$'))
063
    " 选择高亮
064
    if i + 1 == tabpagenr()
065
      let s .= '%#TabLineSel#'
066  www.2cto.com  
    else
067
      let s .= '%#TabLine#'
068
    endif
069
    " 设置标签页号 (用于鼠标点击)
070
    let s .= '%' . (i + 1) . 'T'
071
    " MyTabLabel() 提供完整路径标签 MyShortTabLabel 提供文件名标签
072
    let s .= ' %{MyShortTabLabel(' . (i + 1) . ')} '
073
  endfor
074
  " 最后一个标签页之后用 TabLineFill 填充并复位标签页号
075
  let s .= '%#TabLineFill#%T'
076
  " 右对齐用于关闭当前标签页的标签
077
  if tabpagenr('$') > 1
078  www.2cto.com  
    let s .= '%=%#TabLine#%999Xclose'
079
  endif
080
  return s
081
endfunction
082
" 文件名标签
083
function MyShortTabLabel(n)
084
  let buflist = tabpagebuflist(a:n)
085
  let label = bufname (buflist[tabpagewinnr (a:n) -1])
086
  let filename = fnamemodify (label, ':t')
087
  return filename
088
endfunction
089
"完整路径标签
090
function MyTabLabel(n)
091
  let buflist = tabpagebuflist(a:n)
092  www.2cto.com  
  let winnr = tabpagewinnr(a:n)
093
  return bufname(buflist[winnr - 1])
094
endfunction
095
" vim 标签样式
096
"  TabLineFill  tab pages line, where there are no labels
097
hi TabLineFill term=none
098
hi TabLineFill ctermfg=DarkGrey
099
hi TabLineFill guifg=#777777
100
"  TabLineSel   tab pages line, active tab page label
101
hi TabLineSel term=inverse
102
hi TabLineSel cterm=none ctermfg=yellow ctermbg=Black
103
hi TabLineSel gui=none guifg=yellow guibg=Black
104
  
105
" Develop editing options
106
au FileType vim setl expandtab
107
au FileType vim setl shiftwidth=2
108  www.2cto.com  
au FileType vim setl tabstop=2
109
 
110
" 显示状态栏(默认值为 1,无法显示状态栏)
111
set laststatus=2
112
" Format the statusline
113
set statusline=\ %F%m%r%h\ %w\ \ CWD:\ %r%{CurDir()}E5%h\ \ \ Line:\ %l/%L:%c
114
  
115
function! CurDir()
116
    let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g")
117  www.2cto.com  
    return curdir
118
endfunction
119
 
120
"#######################设置PHP函数自动提醒#########################Start
121
"设置字典自动完成
122
set complete+=k
123
"设置字典
124
set dictionary=~/.vim/doc/php_funclist.txt
125
" 自动完成使用TAB键
126
function! InsertTabWrapper()
127
    let col=col('.')-1
128  www.2cto.com  
    if !col || getline('.')[col-1] !~ '\k'
129
        return "\<TAB>"
130
    else
131
        return "\<C-N>"
132
    endif
133
endfunction
134
"将InsertTabWrapper映射到TAB上
135
inoremap <TAB> <C-R>=InsertTabWrapper()<CR>
136
"#######################设置PHP函数自动提醒#########################End
137
 
138
 
139
"#######中括号 大括号 小括号 自动补全
140  www.2cto.com  
:inoremap ( ()<ESC>i
141
:inoremap ) <c-r>=ClosePair(')')<CR>
142
:inoremap { {}<ESC>i
143
:inoremap } <c-r>=ClosePair('}')<CR>
144
:inoremap [ []<ESC>i
145
:inoremap ] <c-r>=ClosePair(']')<CR>
146
:inoremap < <><ESC>i
147  www.2cto.com  
:inoremap > <c-r>=ClosePair('>')<CR>
148
 
149
function ClosePair(char)
150
    if getline('.')[col('.') - 1] == a:char
151
        return "\<Right>"
152     www.2cto.com  
    else
153
        return a:char
154
    endif
155
endfunction
156
"#######中括号 大括号 小括号 自动补全
 
对应的配置文件,全部在gvim的网站上有
 

相关内容

    暂无相关文章