Xinqi Bao's Git

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