Xinqi Bao's Git

2c9c1bd4701fceea81b6e0140c9cb2560ab6abaa
[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>+ :resize +5<CR>
110 nnoremap <silent> <Leader>- :resize -5<CR>
111 nnoremap <silent> <Leader>v+ :vertical resize +5<CR>
112 nnoremap <silent> <Leader>v- :vertical resize -5<CR>
113
114 nnoremap <silent> <leader>gd :YcmCompleter GoTo<CR>
115 nnoremap <silent> <leader>gr :YcmCompleter GoToReferences<CR>
116
117 "HighLight trailing whitespace"
118 highlight ExtraWhitespace ctermbg=red guibg=red
119 match ExtraWhitespace /\s\+$/
120
121 "use powerline-vim for normal use
122 "instead of installing for both user and root
123 "run to install lib: pip3 install --user powerline-status
124 "python3 from powerline.vim import setup as powerline_setup
125 "python3 powerline_setup()
126 "python3 del powerline_setup