vim.rc配置(deepin)
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 'VundleVim/Vundle.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'}
Plugin 'mhinz/vim-startify'
Plugin 'aperezdc/vim-template'
Plugin 'thinca/vim-quickrun'
Plugin 'jiangmiao/auto-pairs'
Plugin 'Chiel92/vim-autoformat'
"" Theme Plugin
Plugin 'sjl/badwolf'
" 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
"" display settings
set t_Co=256
syntax enable
syntax on
set background=dark
colorscheme badwolf
set cursorline
set cursorcolumn
set number
" file encoding
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
" enable mouse
set mouse=a
" indent
set expandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4
" fold
set nofoldenable
set foldmethod=syntax
" search
set hlsearch
set incsearch
" case
set ignorecase
set smartcase
" keep 200 lines of command line history
set history=200
" Show a few lines of context around the cursor.
" Note that this makes the text scroll
" if you mouse-click near the start or end of the window.
set scrolloff=5
set sidescrolloff=5
" display completion matches in a status line
set wildmenu
" display incomplete commands
set showcmd
" Allow backspacing over everything in insert mode.
set backspace=eol,start,indent
" Use ; as <Leader>
let mapleader = ";"
" Quick select whole file
nnoremap <Leader>a ggVG
" Quick save or quit file
nnoremap <Leader>w :w<CR>
nnoremap <Leader>q :q<CR>
nnoremap <Leader>fq :q!<CR>
" Copy to and paste from system clipboard
nnoremap <Leader>y "+y
nnoremap <Leader>p "+p
nnoremap <Leader>fz ggVG"+y
" vim smart autocomplete
set wildmenu
" man the information
nnoremap <Leader>man :Man <cword><CR>
"""" Plugin settings
" vim-startify
let g:startify_files_number = 20
" vim-template
let g:templates_no_autocmd=1
let g:templates_directory='~/.vim/templates'
nnoremap <Leader>tp2 :Template tp2<CR>
" vim-quickrun
let g:quickrun_config = {
\ "_" : {
\ "outputter" : "message",
\ },
\}
let g:quickrun_no_default_key_mappings = 1
nmap <F5> <Plug>(quickrun)
" YouCompleteMe
let g:ycm_collect_identifiers_from_tags_files=1
set tags+=~/.tags/stdcpp.tags
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
let g:ycm_complete_in_comments=1
let g:ycm_cache_omnifunc=0
let g:ycm_seed_identifiers_with_syntax=1
set completeopt-=preview
" Airline
let g:airline_theme='luna'
let g:airline_powerline_fonts = 1
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
let g:airline_symbols.linenr = '&'
" AutoFormat
let g:formatdef_my_cpp = '"astyle --style=google"'
let g:formatters_cpp = ['my_cpp']
"au BufWrite * :Autoformat
nmap <Leader>fmt <Plug>(Autoformat)
""" My Own Function
func! CppDebug()
exe "silent !g++ -O0 -std=c++14 -g % -o %<"
exe "!gdb %<"
exe "silent !rm -rf %<"
endfunc
nnoremap <Leader>db :call CppDebug()<CR>
map <F6> :call Run()<CR>
func! Run()
exe "silent w"
exe "silent !g++ % -o %<"
exe "!./%<"
exe "silent !rm %<"
endf