我自己用的vim配置

2017-03-07  本文已影响0人  David栗子
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'gmarik/Vundle.vim'
Bundle 'Valloric/YouCompleteMe'

call vundle#end()
filetype plugin indent on

set nocompatible "非兼容模式,使用vim高级特性

set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,gb18030,latin1
"下面这四行在某些特殊情况下可以显示中文乱码,可以选择性使用
"set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
"set enc=utf8
"set fencs=utf8,gbk,gb2312,gb18030
"set encoding=prc

syntax on
set tabstop=4       " 文件中一个 <Tab> 占据的空格数。
set shiftwidth=4    " 每一级自动缩进的空格数。
set smarttab        " 当打开时,行首的 <Tab> 会按照 'shiftwidth' 插入空白
"set showcmd         " 在状态栏中显示(部分)命令。
set number          " 显示行号。
set cursorline      "突出显示当前行

set showmatch       " When a bracket is inserted, briefly jump to the matching
set hlsearch        " 当有一个符合之前搜索的值时,高亮所有匹配
set incsearch       " 当输入搜索命令时,离开显示符合与目前输入的模式匹配的内容
set ignorecase      " 在搜索中忽略大小写
set smartcase       " 如果搜索中有大写字符,忽略 'ignorecase' 选项
set backspace=2     " Influences the working of <BS>, <Del>, CTRL-W
set autoindent      " 当开始新行时复制当前行的缩进
"set textwidth=79    " Maximum width of text that is being inserted. A longer
set formatoptions=c,q,r,t " This is a sequence of letters which describes how
set ruler           " 显示当前光标位置的行号和列号,用逗号分割
set background=dark " 当设置为 "dark" 时,Vim 会尝试使用在暗色背景中合适的颜色。
set cinoptions=g0,N-s,:0,(0  " 设置缩进格式

set pastetoggle=<F9>    " 开启这个选项后粘贴原始格式

colorscheme delek
filetype plugin indent on
"vim跳转到上次的位置
"au BufReadPost * if line("'\"") > 0 |if line("'\"") <= line("$")|exe("norm'\"")|else|exe "norm $"
"|endif|endifset viminfo='1000,f1,<500
"set tags+=~/.vim/systags

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" cscope setting
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has("cscope")
    set csprg=/usr/bin/cscope
    set csto=1
    set cst 
    set nocsverb
    " add any database in current directory
    if filereadable("/home/david/mytag/cscope.out")
        cs add ~/work/server/cscope.out
    endif
    set csverb
endif

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>

"you complete me(YCM) setting
let g:ycm_confirm_extra_conf = 0
let g:ycm_key_invoke_completion = '<C-L>'

"进行版权声明的设置
"添加或更新头
map <F4> :call TitleDet()<cr>
function AddTitle()
    if (&filetype == "lua")
        call append(0,"--[[===========================================================================")
    elseif (&filetype == "c" || &filetype == "cpp" || &filetype == "cxx" || &filetype == "cc")
        call append(0,"/*=============================================================================")
    else
        call append(0,"##============================================================================")
    endif
    call append(1,"# Author: david#gmail.com")
    call append(2,"# Last modified: ".strftime("%Y-%m-%d %H:%M:%S"))
    call append(3,"# Filename: ".expand("%:t"))
    call append(4,"# License: ")
    call append(5,"# Description: ")
    if &filetype == "lua"
        call append(6,"===========================================================================]]--")
    elseif (&filetype == "c" || &filetype == "cpp" || &filetype == "cxx" || &filetype == "cc")
        call append(6,"=============================================================================*/")
    else
        call append(6,"##============================================================================")
    endif
    echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endf

"更新最近修改时间和文件名
function UpdateTitle()
    normal m'
    execute '/# *Last modified:/s@:.*$@\=strftime(": %Y-%m-%d %H:%M:%S")@'
    normal ''
    normal mk
    execute '/# *Filename:/s@:.*$@\=": ".expand("%:t")@'
    execute "noh"
    normal 'k
    echohl WarningMsg | echo "Successful in updating the copy right." | echohl None
endfunction
"判断前10行代码里面,是否有Last modified这个单词,
"如果没有的话,代表没有添加过作者信息,需要新添加;
"如果有的话,那么只需要更新即可
function TitleDet()
    let n=1
    "默认为添加
    while n < 10
        let line = getline(n)
        if line =~ '^\#\s*\S*Last\smodified:\S*.*$'
            call UpdateTitle()
            return
        endif
        let n = n + 1
    endwhile
    call AddTitle()
endfunction

上一篇下一篇

猜你喜欢

热点阅读