-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvimrc
More file actions
149 lines (115 loc) · 4.02 KB
/
vimrc
File metadata and controls
149 lines (115 loc) · 4.02 KB
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
filetype plugin indent on
set shiftround
set autoindent
set tabstop=4
set shiftwidth=4
set expandtab
set smarttab
set completeopt=longest,menuone
set shortmess+=c
set belloff+=ctrlg
set notermguicolors
set nocompatible
set hidden
set splitbelow
set splitright
set noea
"set spell
set spelllang=en_us
set omnifunc=ale#completion#OmniFunc
set hlsearch
set smartcase
syntax on
set wrap
set laststatus=2
set number
set ruler
set title
set encoding=utf-8
set matchpairs+=<:>
set t_Co=256
set rtp+=/opt/homebrew/opt/fzf
" Make terminal swicth to I-Bar while in Insert mode
set t_RV =
let &t_SI = "\e[6 q"
let &t_EI = "\e[2 q"
" MacOS support for "delete" key on keyboard
set backspace=indent,eol,start
set bg=dark
colorscheme gruvbox
let g:background='dark'
let g:airline_powerline_fonts=1
let g:airline_theme='gruvbox'
let g:airline#extensions#tabline#enabled = 1
let g:airline#extentions#battery#enabled=1
let g:airline#extentions#branch#enabled=1
let g:ctrlp_cmd='CtrlPMixed'
let g:ctrlp_working_path_mode='r'
let g:ale_virtualenv_dir_names = ['env']
let g:ale_completion_enabled = 1
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\ 'javascript': ['prettier', 'eslint'],
\}
let g:ale_fix_on_save = 1
let g:gitgutter_override_sign_column_highlight=0
let g:gitgutter_sign_added='+'
highlight GitGutterAdd ctermfg=green guifg=green
let g:gitgutter_sign_modified='~'
highlight GitGutterChange ctermfg=yellow guifg=yellow
let g:gitgutter_sign_removed='-'
highlight GitGutterDelete ctermfg=red guifg=red
let g:gitgutter_sign_removed_first_line='-^'
let g:gitgutter_sign_removed_above_and_below='-v'
let g:gitgutter_sign_modified_removed='~-'
highlight GitGutterChangeDelete ctermfg=yellow guifg=yellow
let $FZF_DEFAULT_OPTS="--ansi --preview-window 'right:60%' --layout reverse --margin=1,4 --preview 'bat --color=always --style=header,grid --line-range :300 {}'"
let g:fzf_tags_command = 'ctags -R'
let g:NERDTreeWinSize=50
augroup cursorCmds
autocmd!
" make cursor become a block on entering vim
autocmd VimEnter * silent !echo -ne "\e[2 q"
" make cursor become an I-bar on leaving vim
autocmd VimLeave * silent !echo -ne "\e[6 q"
augroup END
nmap <F5> :NERDTreeRefreshRoot<CR>
nnoremap <C-j> :bprevious<CR>
nnoremap <C-k> :bnext<CR>
nnoremap <C-n> :NERDTreeFocus<CR>
nnoremap <C-f> :NERDTreeFind<CR>
nnoremap <C-d> :ALEGoToDefinition<CR>
if isdirectory('.git')
nnoremap <C-p> :GFilesWithDevicons<CR>
else
nnoremap <C-p> :Files<CR>
endif
nnoremap <C-s> :Ag<CR>
nnoremap <C-b> :Buffers<CR>
nnoremap <F8> :TagbarToggle<CR>
nnoremap <silent> <S-Up> :exe "resize " . (winheight(0) * 3/2)<CR>
nnoremap <silent> <S-Down> :exe "resize " . (winheight(0) * 2/3)<CR>
nnoremap <silent> <S-Left> :exe "vertical resize " . (winwidth(0) * 3/2)<CR>
nnoremap <silent> <S-Right> :exe "vertical resize " . (winwidth(0) * 2/3)<CR>
command CleanWhitespace %s/\s\+$//e
autocmd FileType python autocmd BufWritePre <buffer> CleanWhitespace
" Start NERDTree when VIM is started without file arguments, move the cursor
" to the other
autocmd StdinReadPre * let s:std_int=1
autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | NERDTree | wincmd p | endif
" Once vim is loaded force a complete redraw (have some strange artifacts if
" this doesn't happen
autocmd VimEnter * redraw!
" If NERDTree is the only pane open, exit.
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif
let g:NERDTreeDirArrowExpandable=''
let g:NERDTreeDirArrowCollapsible=''
" When editing a file, always jump to the last known cursor position. Don't do
" it when the position is invalid, when inside an event handler (happends when
" dropping a file on gvim) and for a commit message (it's likely a different
" one than last time).
autocmd BufReadPost *
\ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
\ | exe "normal! g`\""
\ | endif
autocmd Filetype typescriptreact setlocal tabstop=2 shiftwidth=2