linux vim括号自动补全,我的VIM配置(ubuntu)语法高亮 自动补全

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

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

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

配置代码:

set nocp "设置兼容

set expandtab "设置tab

set shiftwidth=4 "设置tab的间隔

set tabstop=4 "四个空格代表一个tab

set sts=4

set showmatch "在输入括号时光标会短暂地跳到与之相匹配的括号处

set autoindent "设置自动缩进

" set smartindent "设置智能缩进

set nowrap "设置自动换行

set tw=500

set lbr

set number "设置是否显示行

set guifont=Monospace\ 11 "设置字体大小

set encoding=utf-8 "设置编码为utf-8

set fileencoding=utf-8

set fileencodings=ucs-bom,utf-8,GB18030,cp936,big5,euc-jp,euc-kr,latin1

set 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的设置============================

map :TlistToggle

"map :silent! Tlist "按下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的设置==============================

" ############################键盘映射设置区域###############################

map :NERDTreeToggle

map t :NERDTreeMirror

" 对应使用函数的配置

set guitablabel=%{ShortTabLabel()}

function ShortTabLabel ()

let bufnrlist = tabpagebuflist (v:lnum)

let label = bufname (bufnrlist[tabpagewinnr (v:lnum) -1])

let filename = fnamemodify (label, ':t')

return filename

endfunction

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 s

endfunction

" 文件名标签

function MyShortTabLabel(n)

let buflist = tabpagebuflist(a:n)

let label = bufname (buflist[tabpagewinnr (a:n) -1])

let filename = fnamemodify (label, ':t')

return filename

endfunction

"完整路径标签

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 labels

hi TabLineFill term=none

hi TabLineFill ctermfg=DarkGrey

hi TabLineFill guifg=#777777

" TabLineSel tab pages line, active tab page label

hi TabLineSel term=inverse

hi TabLineSel cterm=none ctermfg=yellow ctermbg=Black

hi TabLineSel gui=none guifg=yellow guibg=Black

" Develop editing options

au FileType vim setl expandtab

au FileType vim setl shiftwidth=2

au FileType vim setl tabstop=2

" 显示状态栏(默认值为 1,无法显示状态栏)

set laststatus=2

" Format the statusline

set 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 curdir

endfunction

"#######################设置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 "\"

else

return "\"

endif

endfunction

"将InsertTabWrapper映射到TAB上

inoremap =InsertTabWrapper()

"#######################设置PHP函数自动提醒#########################End

"#######中括号 大括号 小括号 自动补全

:inoremap ( ()i

:inoremap ) =ClosePair(')')

:inoremap { {}i

:inoremap } =ClosePair('}')

:inoremap [ []i

:inoremap ] =ClosePair(']')

:inoremap < <>i

:inoremap > =ClosePair('>')

function ClosePair(char)

if getline('.')[col('.') - 1] == a:char

return "\"

else

return a:char

endif

endfunction

"#######中括号 大括号 小括号 自动补全

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值