Xinqi Bao's Git

11d16c1101371a09e02343cbecf3c834fcf34356
[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 "change kernel version to your version, for kernel development
38 set path=.,lib;,include;,includes;
39 set path+=/lib/modules/5.4.46-1-lts/build/include
40 set path+=/lib/modules/5.4.46-1-lts/build/arch/x86/include
41 set path+=/usr/include,/usr/include/c++/*
42
43
44 " Writes to the unnamed register also writes to the * and + registers. This
45 " makes it easy to interact with the system clipboard
46 if has ('unnamedplus')
47 set clipboard=unnamedplus
48 else
49 set clipboard=unnamed
50 endif
51
52 call plug#begin()
53
54 Plug 'morhetz/gruvbox'
55 Plug 'ycm-core/YouCompleteMe'
56 Plug 'kien/ctrlp.vim'
57 Plug 'mbbill/undotree'
58
59 Plug 'preservim/nerdtree'
60 Plug 'rhysd/vim-clang-format'
61 Plug 'ludovicchabant/vim-gutentags'
62 Plug 'plasticboy/vim-markdown'
63 Plug 'christoomey/vim-tmux-navigator'
64
65 call plug#end()
66
67 colorscheme gruvbox
68
69 autocmd StdinReadPre * let s:std_in=1
70 "when vim openning with no file, open NERDTree
71 autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
72
73 let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
74 let g:ctrlp_use_caching = 0
75
76 let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'
77 let g:ycm_enable_diagnostic_signs = 0
78 let g:ycm_always_populate_location_list = 1
79 "let g:ycm_show_diagnostics_ui = 0
80 let g:ycm_add_preview_to_completeopt = 1
81 let g:ycm_autoclose_preview_window_after_completion = 1
82 let g:ycm_auto_hover = 'no'
83
84 let mapleader = " "
85 nnoremap <C-h> <C-w>h
86 nnoremap <C-j> <C-w>j
87 nnoremap <C-k> <C-w>k
88 nnoremap <C-l> <C-w>l
89 nnoremap <leader>" viw<esc>a"<esc>bi"<esc>lel
90 nnoremap <leader>' viw<esc>a'<esc>bi'<esc>lel
91 nnoremap <leader>u :UndotreeShow<CR>
92 nnoremap <leader>v :NERDTreeToggle<CR>
93 nnoremap <silent> <Leader>+ :vertical resize +5<CR>
94 nnoremap <silent> <Leader>- :vertical resize -5<CR>
95
96 nnoremap <silent> <leader>gd :YcmCompleter GoTo<CR>
97 nnoremap <silent> <leader>gr :YcmCompleter GoToReferences<CR>
98
99 "HighLight trailing whitespace"
100 highlight ExtraWhitespace ctermbg=red guibg=red
101 match ExtraWhitespace /\s\+$/
102
103 "use powerline-vim for normal use
104 "instead of installing for both user and root
105 "run to install lib: pip3 install --user powerline-status
106 python3 from powerline.vim import setup as powerline_setup
107 python3 powerline_setup()
108 python3 del powerline_setup