Xinqi Bao's Git

2bf5a56ed11e01871f38380c07788dd207a300da
[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 showtabline=2
22 set laststatus=2 "always show status line
23 set noshowmode
24 set wildmenu
25
26 " Turn backup off
27 set noswapfile
28 set nobackup
29 set nowritebackup
30 set undodir=~/.vim/undodir
31 set undofile
32
33 "ColumnLimit
34 set colorcolumn=80
35 highlight ColorColumn ctermbg=0 guibg=lightgrey
36
37 set tags=tags~;,tags~
38 "setting gf (go file) path
39 "change kernel version to your version, for kernel development
40 set path=.,lib;,include;,includes;
41 set path+=/lib/modules/5.4.46-1-lts/build/include
42 set path+=/lib/modules/5.4.46-1-lts/build/arch/x86/include
43 set path+=/usr/include,/usr/include/c++/*
44
45
46 " Writes to the unnamed register also writes to the * and + registers. This
47 " makes it easy to interact with the system clipboard
48 if has ('unnamedplus')
49 set clipboard=unnamedplus
50 else
51 set clipboard=unnamed
52 endif
53
54 call plug#begin()
55
56 Plug 'vim-airline/vim-airline'
57 "Plug 'vim-airline/vim-airline-themes'
58
59 Plug 'morhetz/gruvbox'
60 Plug 'ycm-core/YouCompleteMe'
61 Plug 'kien/ctrlp.vim'
62 Plug 'mbbill/undotree'
63
64 Plug 'tpope/vim-fugitive'
65 Plug 'preservim/nerdtree'
66 Plug 'rhysd/vim-clang-format'
67 Plug 'ludovicchabant/vim-gutentags'
68 Plug 'plasticboy/vim-markdown'
69 Plug 'christoomey/vim-tmux-navigator'
70
71 call plug#end()
72
73 colorscheme gruvbox
74
75 "tabline with airline
76 ":help airline-tabline
77 let g:airline#extensions#tabline#enabled = 1
78 let g:airline#extensions#tabline#show_buffers = 0
79 let g:airline#extensions#tabline#show_splits = 0
80 let g:airline#extensions#tabline#show_tab_count = 0
81 let g:airline#extensions#tabline#show_close_button = 0
82
83 autocmd StdinReadPre * let s:std_in=1
84 "when vim openning with no file, open NERDTree
85 autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
86
87 let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
88 let g:ctrlp_use_caching = 0
89
90 let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'
91 let g:ycm_enable_diagnostic_signs = 0
92 let g:ycm_always_populate_location_list = 1
93 "let g:ycm_show_diagnostics_ui = 0
94 let g:ycm_add_preview_to_completeopt = 1
95 let g:ycm_autoclose_preview_window_after_completion = 1
96 let g:ycm_auto_hover = 'no'
97
98 let mapleader = " "
99 nnoremap J :tabprevious<CR>
100 nnoremap K :tabnext<CR>
101 nnoremap <C-h> <C-w>h
102 nnoremap <C-j> <C-w>j
103 nnoremap <C-k> <C-w>k
104 nnoremap <C-l> <C-w>l
105 nnoremap <leader>" viw<esc>a"<esc>bi"<esc>lel
106 nnoremap <leader>' viw<esc>a'<esc>bi'<esc>lel
107 nnoremap <leader>u :UndotreeShow<CR>
108 nnoremap <leader>v :NERDTreeToggle<CR>
109 nnoremap <silent> <Leader>+ :vertical resize +5<CR>
110 nnoremap <silent> <Leader>- :vertical resize -5<CR>
111
112 nnoremap <silent> <leader>gd :YcmCompleter GoTo<CR>
113 nnoremap <silent> <leader>gr :YcmCompleter GoToReferences<CR>
114
115 "HighLight trailing whitespace"
116 highlight ExtraWhitespace ctermbg=red guibg=red
117 match ExtraWhitespace /\s\+$/
118
119 "use powerline-vim for normal use
120 "instead of installing for both user and root
121 "run to install lib: pip3 install --user powerline-status
122 "python3 from powerline.vim import setup as powerline_setup
123 "python3 powerline_setup()
124 "python3 del powerline_setup