-
Notifications
You must be signed in to change notification settings - Fork 0
/
dot_vimrc
149 lines (127 loc) · 4.43 KB
/
dot_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
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim'
if empty(glob(data_dir . '/autoload/plug.vim'))
silent execute '~curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
autocmd VimEnter * PlugInstall --sync | source ~/.vimrc
endif
set nocompatible " required for vundle
filetype off " required for vundle
call plug#begin()
Plug 'altercation/vim-colors-solarized'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'tpope/vim-abolish'
Plug 'tpope/vim-surround'
Plug 'tpope/vim-obsession'
Plug 'tpope/vim-repeat'
Plug 'tpope/vim-speeddating'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
Plug 'SirVer/ultisnips'
Plug 'preservim/nerdtree'
Plug 'valloric/youcompleteme'
Plug 'zdharma-continuum/zinit-vim-syntax'
Plug 'pedrohdz/vim-yaml-folds'
Plug 'inkarkat/vim-AdvancedSorters'
Plug 'inkarkat/vim-ingo-library'
Plug 'Yggdroot/indentLine'
if !has('nvim')
Plug 'rhysd/vim-healthcheck'
endif
Plug 'dense-analysis/ale'
Plug 'pearofducks/ansible-vim', { 'do': './UltiSnips/generate.sh' }
Plug 'freitass/todo.txt-vim'
Plug 'zsh-users/zsh-syntax-highlighting'
call plug#end() " make sure all plugins are before here
filetype plugin indent on
syntax on
set background=dark
colorscheme solarized
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set relativenumber
set scrolloff=5
" Mappings
" If at the end of file, j moves line up visually
nnoremap <expr> j line(".") == line('$') ? '<C-e>':'j'
" Emulate scrolloff=5 when jumping to end
nnoremap G G5<C-e>
" maps leader to space for the following map
let mapleader = " "
" maps <sp> w to perform windows actions (Ctrl W) to avoid closing window
nnoremap <leader>w <C-w>
nnoremap <leader>W <C-W>
" maps <sp> t to perform Ctrl T to avoid opening new browser tabs
nnoremap <leader>t <C-t>
" maps NERDTree commands
" restores leader to \
let mapleader = "\\"
" Make resizing easier
nnoremap <C-w><Left> <C-w><
nnoremap <C-w><Right> <C-w>>
nnoremap <C-w><Up> <C-w>+
nnoremap <C-w><Down> <C-w>-
" fixes inpde issues with vim
set backupdir=~/.vim/backup//
set directory=~/.vim/swap//
set undodir=~/.vim/undo//
" Airline configurations
let g:airline_theme='solarized'
let g:airline_solarized_bg='dark'
let g:airline#extensions#tabline#enabled=1
let g:airline#extensions#tabline#formatter='unique_tail_improved'
let g:airline_powerline_fonts=1
if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\| exe "normal! g`\"" | endif
endif
" Call mkdir before writing
augroup Mkdir
autocmd!
autocmd BufWritePre * call mkdir(expand("<afile>:p:h"), "p")
augroup END
" Configure indentLine
let g:indentLine_char = '▏'
let g:indentLine_char_list = ['│', '╎', '┆', '┊']
" fix issue with hidden json quotes when using indentline
let g:vim_json_conceal = 0
" Configure folds
set foldlevelstart=20
hi Folded ctermbg=0 cterm=NONE ctermfg=7
" guard for distributions lacking the 'persistent_undo' feature.
if has('persistent_undo')
" define a path to store persistent undo files.
let target_path = expand('~/.config/vim-persisted-undo/') " create the directory and any parent directories
" if the location does not exist.
if !isdirectory(target_path)
call mkdir(target_path, "p")
endif " point Vim to the defined undo directory.
let &undodir = target_path " finally, enable undo persistence.
set undofile
endif
" Add filetype handling for chezmoi templates
autocmd BufNewFile,BufRead *.yaml.tmpl set filetype=yaml
autocmd BufNewFile,BufRead *.toml.tmpl set filetype=toml
autocmd BufNewFile,BufRead *.json.tmpl set filetype=json
" ALE Settings
set signcolumn=number
set number
let g:airline#extensions#ale#enabled = 1
let g:ale_echo_msg_format = '[%linter%] %s [%severity%s]'
let g:ale_sign_error = '✘'
highlight ALEErrorSign ctermfg=1
let g:ale_sign_warning = '⚠'
highlight ALEWarningSign ctermfg=3
let g:ale_sign_highlight_linenrs = 1
" Yaml configs
autocmd FileType yaml,yml setlocal ts=2 sts=2 sw=2 expandtab
" YouCompleteMe Settings
let g:ycm_collect_identifiers_from_comments_and_strings = 1
let g:ycm_use_ultisnips_completer = 1
" let g:ycm_key_list_select_completion=['<tab>', '<Down>']
" let g:ycm_key_list_previous_completion=['<S-tab>', '<Up>']
let g:UltiSnipsExpandTrigger = '<c-l>'
let g:UltiSnipsJumpForwardTrigger= '<c-j>'
let g:UltiSnipsJumpBackwardTrigger = '<c-k>'
let g:UltiSnipsEditSplit = 'context'