我的VIM配置(ubuntu)语法高亮 自动补全

来源:互联网 发布:手机 惯性导航算法 编辑:程序博客网 时间:2024/04/25 09:05

vim初始设置感觉不好用,下面是我找的一个配置,用起来感觉不错,多谢原创者:http://my.oschina.net/zhangdapeng89/blog/78597

修改方式:将下面代码copy到你系统中的vimrc文件末尾.

比如我的系统中vimrc在/usr/share/vim路径下

我使用命令:vim /usr/share/vim/vimrc      打开文件,然后添加,保存退出。

配置代码:

set nocp    "设置兼容set expandtab   "设置tabset shiftwidth=4    "设置tab的间隔set tabstop=4   "四个空格代表一个tabset sts=4set showmatch   "在输入括号时光标会短暂地跳到与之相匹配的括号处set autoindent  "设置自动缩进" set smartindent "设置智能缩进set nowrap    "设置自动换行set tw=500set lbrset number  "设置是否显示行set guifont=Monospace\ 11  "设置字体大小 set encoding=utf-8  "设置编码为utf-8set fileencoding=utf-8set fileencodings=ucs-bom,utf-8,GB18030,cp936,big5,euc-jp,euc-kr,latin1set helplang=cn "帮助中文支持colorscheme evening "设置主体颜色"set mouse=v " 设置粘贴和复制 "自动补全配置autocmd FileType python set omnifunc=pythoncomplete#Complete autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS autocmd FileType html set omnifunc=htmlcomplete#CompleteTags autocmd FileType css set omnifunc=csscomplete#CompleteCSS autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags autocmd FileType php set omnifunc=phpcomplete#CompletePHP autocmd FileType c set omnifunc=ccomplete#Complete  " =================================进行Taglist的设置<Begin>============================map <F3> :TlistToggle<CR>"map <F3> :silent! Tlist<CR>             "按下F3就可以呼出了"let Tlist_Ctags_Cmd='/usr/bin/ctags'    "因为我们放在环境变量里,所以可以直接执行 let Tlist_Use_Right_Window=1            "让窗口显示在右边,0的话就是显示在左边  "let Tlist_Show_One_File=1               "让taglist可以同时展示多个文件的函数列表 "let Tlist_File_Fold_Auto_Close=1        "非当前文件,函数列表折叠隐藏 "let Tlist_Exit_OnlyWindow=1             "当taglist是最后一个分割窗口时,自动推出vim "let Tlist_Process_File_Always=0         "是否一直处理tags.1:处理;0:不处理  "let Tlist_Inc_Winwidth=0                "不是一直实时更新tags,因为没有必要  " =================================进行Taglist的设置<End>==============================    " ############################键盘映射设置区域###############################map <F2> :NERDTreeToggle<CR>map <F4> t :NERDTreeMirror<CR>  " 对应使用函数的配置set guitablabel=%{ShortTabLabel()}function ShortTabLabel ()  let bufnrlist = tabpagebuflist (v:lnum)  let label = bufname (bufnrlist[tabpagewinnr (v:lnum) -1])  let filename = fnamemodify (label, ':t')  return filenameendfunction set tabline=%!MyTabLine()function MyTabLine()  let s = ''  for i in range(tabpagenr('$'))    " 选择高亮    if i + 1 == tabpagenr()      let s .= '%#TabLineSel#'    else      let s .= '%#TabLine#'    endif    " 设置标签页号 (用于鼠标点击)    let s .= '%' . (i + 1) . 'T'    " MyTabLabel() 提供完整路径标签 MyShortTabLabel 提供文件名标签    let s .= ' %{MyShortTabLabel(' . (i + 1) . ')} '  endfor  " 最后一个标签页之后用 TabLineFill 填充并复位标签页号  let s .= '%#TabLineFill#%T'  " 右对齐用于关闭当前标签页的标签  if tabpagenr('$') > 1    let s .= '%=%#TabLine#%999Xclose'  endif  return sendfunction" 文件名标签function MyShortTabLabel(n)  let buflist = tabpagebuflist(a:n)  let label = bufname (buflist[tabpagewinnr (a:n) -1])  let filename = fnamemodify (label, ':t')  return filenameendfunction"完整路径标签function MyTabLabel(n)  let buflist = tabpagebuflist(a:n)  let winnr = tabpagewinnr(a:n)  return bufname(buflist[winnr - 1])endfunction" vim 标签样式"  TabLineFill  tab pages line, where there are no labelshi TabLineFill term=nonehi TabLineFill ctermfg=DarkGreyhi TabLineFill guifg=#777777"  TabLineSel   tab pages line, active tab page labelhi TabLineSel term=inversehi TabLineSel cterm=none ctermfg=yellow ctermbg=Blackhi TabLineSel gui=none guifg=yellow guibg=Black  " Develop editing optionsau FileType vim setl expandtabau FileType vim setl shiftwidth=2au FileType vim setl tabstop=2 " 显示状态栏(默认值为 1,无法显示状态栏)set laststatus=2" Format the statuslineset statusline=\ %F%m%r%h\ %w\ \ CWD:\ %r%{CurDir()}E5%h\ \ \ Line:\ %l/%L:%c  function! CurDir()    let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g")    return curdirendfunction "#######################设置PHP函数自动提醒#########################Start"设置字典自动完成set complete+=k"设置字典set dictionary=~/.vim/doc/php_funclist.txt" 自动完成使用TAB键function! InsertTabWrapper()    let col=col('.')-1    if !col || getline('.')[col-1] !~ '\k'        return "\<TAB>"    else        return "\<C-N>"    endifendfunction"将InsertTabWrapper映射到TAB上inoremap <TAB> <C-R>=InsertTabWrapper()<CR>"#######################设置PHP函数自动提醒#########################End  "#######中括号 大括号 小括号 自动补全: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> function ClosePair(char)    if getline('.')[col('.') - 1] == a:char        return "\<Right>"    else        return a:char    endifendfunction"#######中括号 大括号 小括号 自动补全




0 0