我的VIM配置方案
我的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的网站上有
评论暂时关闭