-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvimrc
157 lines (123 loc) · 3.36 KB
/
vimrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
set nocompatible
set cursorline
set nu
set rnu
filetype off
syntax on
set hidden
set t_Co=16
" correct indentation
set tabstop=4 shiftwidth=4 expandtab
set autoindent
" Plugins
call plug#begin('~/.vim/plugged')
""" Themes
Plug 'dracula/vim'
Plug 'morhetz/gruvbox'
Plug 'joshdick/onedark.vim'
" Plug 'ctrlpvim/ctrlp.vim'
Plug 'tomtom/tcomment_vim'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
" Plug 'lervag/vimtex'
Plug 'airblade/vim-gitgutter'
" Plug 'scrooloose/nerdtree'
" Plug 'Xuyuanp/nerdtree-git-plugin'
" Plug 'tpope/vim-fugitive'
call plug#end()
filetype plugin indent on
let g:tex_flavor='tex'
colorscheme dracula
set bg=dark
" Vim Swap files
set dir=/tmp//
" Mapleader
let mapleader=" "
let maplocaleader=","
nnoremap <leader>r :source ~/.vimrc<CR>
" Folding
set fdm=syntax
nnoremap <leader>a za
nnoremap <leader>c zC
nnoremap <leader>o zO
" Visual Remaps
vnoremap < <gv
vnoremap > >gv
vnoremap <leader>/ :TComment<CR>
nnoremap <leader>/ :TComment<CR>
" Window control
noremap <C-h> <C-w>h
noremap <C-j> <C-w>j
noremap <C-k> <C-w>k
noremap <C-l> <C-w>l
" Buffer navigation
nnoremap <leader>n :bnext<CR>
nnoremap <leader>m :bprev<CR>
nnoremap <leader>b :b
nnoremap <leader>d :bp<bar>sp<bar>bn<bar>bd<CR>
" Remove terminals from bufferlist
autocmd TerminalOpen * setlocal nobuflisted
" Remove trailing whitespace on save
"autocmd BufWritePre * %s/\s\+$//e
" Omnicomplete
highlight Pmenu ctermbg=black gui=bold ctermfg=white
" Sane searching
set incsearch
set hlsearch
set smartcase
" I don't know why but otherwise the backspace key doesn't work as expected
set backspace=indent,eol,start
" Vimtex
let g:vimtex_quickfix_latexlog = {
\ 'overfull' : 0,
\ 'underfull' : 0,
\ 'packages' : {
\ 'default' : 0,
\ },
\}
let g:vimtex_complete_enabled = 1
autocmd FileType tex,latex inoremap <buffer> <C-<Space>> <C-X><C-O>
" CtrlP
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.aux,*.bbl,*.fdb_latexmk,*.blg,*.fls,*.toc
let g:ctrlp_working_path_mode = 'ra'
" Typescript
let g:typescript_indent_disable = 1
" Gitgutter
set updatetime=100
highlight SignColumn ctermbg=NONE ctermfg=NONE
" Jedi-Vim
autocmd FileType python setlocal completeopt-=preview
let g:jedi#usages_command = "<leader>u"
let g:jedi#popup_on_dot = 0
" Airline
"let g:airline_theme = 'dracula'
let g:airline#extensions#bufferline#enabled = 0
let g:airline#extensions#tabline#enabled = 1
" NERDTree
let NERDTreeRespectWildIgnore=1
nnoremap <leader>e :NERDTreeToggle<CR>
"" Exit if NERDTree is last window
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
"" Start NERDTree if vim opens directory
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif
let g:NERDTreeIndicatorMapCustom = {
\ "Modified" : "m",
\ "Staged" : "s",
\ "Untracked" : "u",
\ "Renamed" : "r",
\ "Unmerged" : "c",
\ "Deleted" : "d",
\ "Dirty" : "✗",
\ "Clean" : "✔︎",
\ 'Ignored' : '☒',
\ "Unknown" : "?"
\ }
set shell=/usr/bin/zsh
" Fugitive
nmap <leader>gs :G<CR>
nmap <leader>gc :G commit<CR>
nmap <leader>gp :G pull<CR>
nmap <leader>gP :G push<CR>
nmap <leader>gf :diffget //3<CR>
nmap <leader>gh :diffget //2<CR>