Xinqi Bao's Git

1b4aaa8f2c0baacfeaa5a040a088f004ced089db
[dotfiles.git] / .vimrc
1 syntax enable
2 "colorscheme wombat256mod
3 set background=dark
4
5 set t_Co=256 "terminal color
6 set encoding=utf-8 "required for ycm
7 set noerrorbells
8 set tabstop=4 softtabstop=4
9 set shiftwidth=4
10 set expandtab
11 set smartindent
12 set number
13 set nowrap
14 set smartcase
15 set incsearch
16 set hlsearch
17 set ignorecase
18 set cursorline
19 set autochdir
20 set mouse=a
21 set laststatus=2 "always show status line
22 set wildmenu
23
24 " Turn backup off
25 set noswapfile
26 set nobackup
27 set nowritebackup
28 set undodir=~/.vim/undodir
29 set undofile
30
31 "ColumnLimit
32 set colorcolumn=80
33 highlight ColorColumn ctermbg=0 guibg=lightgrey
34
35 set tags=tags~;,tags~
36 "setting gf (go file) path
37 set path+=/usr/include/c++/*,include;,includes;,lib;
38
39 " Writes to the unnamed register also writes to the * and + registers. This
40 " makes it easy to interact with the system clipboard
41 if has ('unnamedplus')
42 set clipboard=unnamedplus
43 else
44 set clipboard=unnamed
45 endif
46
47 call plug#begin()
48
49 Plug 'morhetz/gruvbox'
50 Plug 'ycm-core/YouCompleteMe'
51 Plug 'kien/ctrlp.vim'
52 Plug 'mbbill/undotree'
53
54 Plug 'preservim/nerdtree'
55 Plug 'rhysd/vim-clang-format'
56 Plug 'ludovicchabant/vim-gutentags'
57 Plug 'plasticboy/vim-markdown'
58 Plug 'christoomey/vim-tmux-navigator'
59
60 call plug#end()
61
62 colorscheme gruvbox
63
64 autocmd StdinReadPre * let s:std_in=1
65 "when vim openning with no file, open NERDTree
66 autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
67
68 let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
69 let g:ctrlp_use_caching = 0
70
71 let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'
72 let g:ycm_enable_diagnostic_signs = 0
73 let g:ycm_always_populate_location_list = 1
74
75 let mapleader = " "
76 nnoremap <C-h> <C-w>h
77 nnoremap <C-j> <C-w>j
78 nnoremap <C-k> <C-w>k
79 nnoremap <C-l> <C-w>l
80 nnoremap <leader>" viw<esc>a"<esc>bi"<esc>lel
81 nnoremap <leader>' viw<esc>a'<esc>bi'<esc>lel
82 nnoremap <leader>u :UndotreeShow<CR>
83 nnoremap <leader>v :NERDTreeToggle<CR>
84 nnoremap <silent> <Leader>+ :vertical resize +5<CR>
85 nnoremap <silent> <Leader>- :vertical resize -5<CR>
86
87 nnoremap <silent> <leader>gd :YcmCompleter GoTo<CR>
88 nnoremap <silent> <leader>gr :YcmCompleter GoToReferences<CR>
89
90 "HighLight trailing whitespace"
91 highlight ExtraWhitespace ctermbg=red guibg=red
92 match ExtraWhitespace /\s\+$/
93
94 "use powerline-vim for normal use
95 "instead of installing for both user and root
96 python3 from powerline.vim import setup as powerline_setup
97 python3 powerline_setup()
98 python3 del powerline_setup