-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathvimrc
120 lines (98 loc) · 2.8 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
filetype plugin indent on
call plug#begin()
Plug 'sheerun/vim-polyglot'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'ekalinin/Dockerfile.vim'
Plug 'w0rp/ale'
Plug 'alfredodeza/coveragepy.vim'
Plug 'tpope/vim-commentary'
Plug 'tpope/vim-fugitive'
Plug 'kristijanhusak/vim-hybrid-material'
Plug 'wincent/command-t'
Plug 'vim-scripts/SQLUtilities'
Plug 'vim-scripts/Align'
call plug#end()
" color scheme
set t_Co=256
syntax on
set background=dark
colorscheme hybrid_material
" Backspace fixes
set backspace=indent,eol,start
" backupcopy
set backupcopy=yes
" UTF8 Support
set encoding=utf-8
" tab settings
set shiftwidth=4 softtabstop=4 expandtab tabstop=8 smarttab
" Set fold off at start
set foldlevelstart=10
" indentation settings
set ai "Auto indent
set si "Smart indent
set number relativenumber
" status line
set laststatus=2 " status line always visible
set noshowmode
" use jk instead of esc
:imap jk <Esc>
" insert newline below/above without entering insert mode
map <F8> o<Esc>
map <F9> O<Esc>
" search options
set hlsearch
set incsearch
set ignorecase
set smartcase
map <CR> :nohl<cr>
" cursor
set cursorline
" replace trailing whitespace
au BufRead *.cfg retab
au BufRead,BufWrite *.cfg :%s/\s\+$//e
au BufRead,BufWrite *.sls :%s/\s\+$//e
au BufRead,BufWrite *.mako :%s/\s\+$//e
au BufRead,BufWrite *.py :%s/\s\+$//e
au BufRead,BufWrite *.js :%s/\s\+$//e
au BufRead,BufWrite *.jsx :%s/\s\+$//e
au BufRead,BufWrite *.sass :%s/\s\+$//e
au BufRead,BufWrite *.yaml :%s/\s\+$//e
au BufRead,BufWrite *.sh :%s/\s\+$//e
au BufRead,BufWrite *.ini :%s/\s\+$//e
" pep-8 compliance
au FileType python match ErrorMsg '\%>79v.\+'
au FileType python match ErrorMsg '\s\+$'
au BufRead,BufWrite *.py :%s/\s\+$//e
" Highlight long lines
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
match OverLength /\%120v.\+/
autocmd BufWinEnter * match OverLength /\%120v.\+/
autocmd InsertEnter * match OverLength /\%120v.\+/
autocmd InsertLeave * match OverLength /\%120v.\+/
autocmd BufWinLeave * call clearmatches()
" Ale
let g:ale_set_loclist = 0
let g:ale_set_quickfix = 1
let g:ale_set_highlights = 1
let g:ale_sign_warning = '⚠'
let g:ale_lint_on_enter = 0
let g:ale_open_list = 1
let g:ale_python_flake8_args = '--ignore=E131,E126,W391,E501,W503'
let g:ale_linters = { 'python': ['flake8'], 'javascript': ['eslint'], 'rust': ['rustc'] }
let g:ale_warn_about_trailing_whitespace = 0
let g:ale_completion_enabled = 1
let g:ale_lint_on_text_changed = 'insert'
" Copy
set clipboard=unnamedplus
" CommandT
let mapleader = ","
nnoremap <Leader>f :CommandT<cr>
" Vim-airline
let g:airline#extensions#branch#enabled = 1 " Show git branch
let g:airline#extensions#ale#enabled = 1 " ALE error status bar
let g:airline_theme = "hybrid"
" Viminfo
set viminfo='20,\"100
packloadall
silent! helptags ALL