自己的~/.vimrc

" 显示行号
set nu!

let mapleader=","

set pastetoggle=<F10>

set backspace=indent,eol,start

set hlsearch

" 设置为搜索时不要回卷
set nowrapscan

"基本缩进效果
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent

" let g:ycm_server_python_interpreter='/usr/bin/python'
" let g:ycm_global_ycm_extra_conf='/home/jyb/.vim/.ycm_extra_conf.py'
" let g:ycm_enable_diagnostic_highlighting = 0

set nocompatible              " be iMproved, required........
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()           
" alternatively, pass a path where Vundle should install plugins
" call vundle#begin('~/some/path/here')


" let Vundle manage Vundle, required
Plugin 'easymotion/vim-easymotion'
Plugin 'VundleVim/Vundle.vim'
" Plugin 'Valloric/YouCompleteMe'
Bundle 'ctrlpvim/ctrlp.vim'
Plugin 'jiangmiao/auto-pairs'
Plugin 'git://github.com/scrooloose/nerdtree.git'
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'taglist.vim'      

" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
"Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'
" Git plugin not hosted on GitHub
"Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
"Plugin 'file:///home/gmarik/path/to/plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
"Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'}

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList       - lists configured plugins
" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line

"折叠设置"
let xml_syntax_folding=1      " XML fold
"set foldmethod=syntax
set foldlevelstart=1
" 用空格键来开关折叠
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>

" Command-line mode
" set mouse=a 启动所有模式,会屏蔽鼠标右键功能
set mouse=c

"ctrlp 配置
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
map <c-k>  :CtrlPMRUFiles<CR>
let g:ctrlp_tabpage_position = 'ac'
let g:ctrlp_extensions = ['tag']
let g:ctrlp_working_path_mode = 'ra'
let g:ctrlp_working_path_mode = 0
let g:ctrlp_use_caching = 1
let g:ctrlp_clear_cache_on_exit = 0
let g:ctrlp_mruf_max = 250
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.rc,*.aps,*.vcproj.*,/home/shuaijun/se/SimulationEngine_Rapid/tinyxml/*
let g:ctrlp_custom_ignore = {
  \ 'dir':  '\.git$\|\.hg$\|\.svn$\|\.yardoc\|public\/images\|public\/system\|data\|log\|tmp$\|node_modules\|vendor',
  \ 'file': '\.exe$\|\.so$\|\.dat$'
  \ }

"nerdtree配置
" 设置<F5> 关闭打开NerdTree
map <F5> :NERDTreeMirror<CR>
map <F5> :NERDTreeToggle<CR>
" " 显示行号
let NERDTreeShowLineNumbers=1
let NERDTreeAutoCenter=1
" 是否显示隐藏文件
let NERDTreeShowHidden=1
" 设置宽度
let NERDTreeWinSize=31
" 在终端启动vim时,共享NERDTree
let g:nerdtree_tabs_open_on_console_startup=1
" 忽略一下文件的显示
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
" 显示书签列表
let NERDTreeShowBookmarks=1
" 窗口位置
let g:NERDTreeWinPos="right"

" taglist配置
map <F6> :Tlist<CR>

"cscope自动更新
function! UpdateCscope()
    let db = findfile("cscope.out", ".;")
    if (!empty(db))
        let oldpath = getcwd()
        let path = strpart(db, 0, match(db, "/cscope.out$"))
        if (!empty(path))
            exe "cd " . path
        endif
        "!cscope -Rbq
        !find  -name "*.[ch]" -o -name "*.cpp" > cscope.files
        !cscope -bR -i cscope.files
        exe "cd " . oldpath
    endif
endfunction
au VimEnter * silent! call UpdateCscope()

" auto load cscope file [start]
function! LoadCscope()
  set cst
  set csto=0
  set nocsverb
  let db = findfile("cscope.out", ".;")
  if (!empty(db))
    let path = strpart(db, 0, match(db, "/cscope.out$"))
    set nocscopeverbose " suppress 'duplicate connection' error
    exe "cs add " . db . " " . path
    set cscopeverbose
  " else add the database pointed to by environment variable
  elseif $CSCOPE_DB != ""
    cs add $CSCOPE_DB
  endif
endfunction
au BufEnter /* call LoadCscope()
" auto load cscope file [end]

" 基于缩进或语法进行代码折叠
"set foldmethod=indent
set foldmethod=syntax
" 启动vim时关闭折叠代码
set nofoldenable

" 配置vim-airline 开始
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#formatter = 'default'
let g:airline_theme='dark'
let g:airline_powerline_fonts = 1  
let g:airline_highlighting_cache = 1
let Tlist_Auto_Open=1
let g:airline_powerline_fonts = 1   

"打开tabline功能,方便查看Buffer和切换,省去了minibufexpl插件 let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#buffer_nr_show = 1 "设置切换Buffer快捷键" nnoremap <C-tab> :bn<CR> nnoremap <C-s-tab> :bp<CR> " 关闭状态显示空白符号计数
let g:airline#extensions#whitespace#enabled = 0
let g:airline#extensions#whitespace#symbol = '!'
" 设置consolas字体"前面已经设置过
"set guifont=Consolas\ for\ Powerline\ FixedD:h11 if !exists('g:airline_symbols') let g:airline_symbols = {} endif " old vim-powerline symbols
let g:airline_left_sep = '⮀'
let g:airline_left_alt_sep = '⮁'
let g:airline_right_sep = '⮂'
let g:airline_right_alt_sep = '⮃'

set t_Co=256


" Settings for tagslist
" 让taglist窗口出现在Vim的左边边
let Tlist_Use_Left_Window = 1
" 当同时显示多个文件中的tag时,设置为1,可使taglist只显示当前文件tag,其它文件的tag都被折叠起来。
let Tlist_File_Fold_Auto_Close = 1
" 只显示一个文件中的tag,默认为显示多个
let Tlist_Show_One_File = 1
" Tag的排序规则,以名字排序。默认是以在文件中出现的顺序排序
let Tlist_Sort_Type = 'name'
" Taglist窗口打开时,立刻切换为有焦点状态
let Tlist_GainFocus_On_ToggleOpen = 1
" 如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Exit_OnlyWindow = 1
" 设置窗体宽度为32,可以根据自己喜好设置
let Tlist_WinWidth = 32
" 这里比较重要了,设置ctags的位置,不是指向MacOS自带的那个,而是我们用homebrew安装的那个
let Tlist_Ctags_Cmd ='/usr/bin/ctags'

猜你喜欢

转载自www.cnblogs.com/jiangyibo/p/10917633.html