]> git.friedersdorff.com Git - max/saltfiles.git/blob - states/vim/files/vimrc
Use python-mode as vim ide
[max/saltfiles.git] / states / vim / files / vimrc
1 :let mapleader = ","
2 :let maplocalleader = "\\"
3
4 set nocompatible              " be iMproved, required
5 filetype off                  " required
6
7 " set the runtime path to include Vundle and initialize
8 set rtp+=~/.vim/bundle/Vundle.vim
9 call vundle#begin()
10 " alternatively, pass a path where Vundle should install plugins
11 " call vundle#begin('~/some/path/here')
12 Plugin 'gmarik/Vundle.vim'
13 Plugin 'Yggdroot/indentLine'
14 Plugin 'scrooloose/syntastic'
15 Plugin 'docunext/closetag.vim'
16 Plugin 'vim-airline/vim-airline'
17 Plugin 'vim-airline/vim-airline-themes'
18 Plugin 'airblade/vim-gitgutter'
19 Plugin 'editorconfig/editorconfig-vim'
20 Plugin 'LaTeX-Box-Team/LaTeX-Box'
21 Plugin 'hynek/vim-python-pep8-indent'
22 Plugin 'vim-scripts/octave.vim--'
23 Plugin 'vim-scripts/MatlabFilesEdition'
24 Plugin 'tmhedberg/SimpylFold'
25 Plugin 'saltstack/salt-vim'
26 Plugin 'fatih/vim-go'
27 Plugin 'gu-fan/riv.vim'
28 Plugin 'lepture/vim-jinja'
29 Plugin 'aklt/plantuml-syntax'
30 Plugin 'vim-python/python-syntax'
31 Plugin 'majutsushi/tagbar'
32 Plugin 'altercation/vim-colors-solarized'
33 Plugin 'ctrlpvim/ctrlp.vim'
34 Plugin 'Chiel92/vim-autoformat'
35 Plugin 'python-mode/python-mode'
36
37 " All of your Plugins must be added before the following line
38 call vundle#end()            " required
39 filetype plugin indent on    " required
40
41 " Swapfiles
42 set backupdir=$HOME/.vim/backup//
43
44 " Random look and feel stuff
45 syntax on
46 set background=light
47 colorscheme solarized
48 let g:solarized_termtrans = 1
49
50 set expandtab
51 set shiftwidth=4
52 set softtabstop=4
53 set tabstop=4
54 set relativenumber
55 set number
56
57 let g:html_indent_inctags = "html,body,head,tbody"
58 let g:indentLine_color_term = 5
59
60 " syntastic
61 set statusline+=%#warningmsg#
62 set statusline+=%{SyntasticStatuslineFlag()}
63 set statusline+=%*
64
65 let g:syntastic_always_populate_loc_list = 1
66 let g:syntastic_auto_loc_list = 2
67 let g:syntastic_check_on_open = 1
68 let g:syntastic_check_on_wq = 1
69 let g:syntastic_javascript_checkers = ['eslint']
70 let g:syntastic_python_python_exec = '/usr/bin/python3'
71 let g:syntastic_python_checkers = ['python', 'flake8']
72 let g:syntastic_python_flake8_args='--config=/home/max/.config/flake8'
73 let g:syntastic_aggregate_errors = 1
74
75 " Syntastic C++11
76 let g:syntastic_cpp_compiler = 'g++'
77 let g:syntastic_cpp_compiler_options = '-std=c++14'
78
79 set laststatus=2
80 " Set this to 1 if powerline fonts are installed.
81 let g:airline_powerline_fonts = 1
82 set timeoutlen=1000
83 let g:airline#extensions#tabline#enabled = 1
84 let g:airline#extensions#tabline#fnamemod = ':t'
85
86 " Setting wildignore
87 set wildignore+=venv
88 set wildignore+=.git,.hg.svn
89
90
91 " Editorconfig
92 let g:EditorConfig_exclude_patterns = ['fugitive://.*']
93
94 " latex-box
95 let g:LatexBox_quickfix = 4
96 let g:LatexBox_viewer = "mupdf"
97
98 " clang fix
99 let g:clang_user_options='|| exit0'
100
101 " Color 80th column
102 highlight ColorColumn ctermbg=7
103 let &colorcolumn="80,100".join(range(120,999),",")
104
105 " Octave Syntax
106 " augroup filetypedetect
107 "   au! BufRead,BufNewFile *.m,*.oct set filetype=octave
108 " augroup END
109
110 " Quiet netrw
111 let g:netrw_silent = 1
112 let g:netrw_liststyle = 3
113 let g:netrw_banner = 0
114 let g:netrw_browse_split = 4
115 let g:netrw_winsize = 20
116
117 " Set folding
118 set foldmethod=syntax
119 nnoremap <space> za
120 vnoremap <space> zf
121
122 " Better saving behaviour for go
123 let g:go_fmt_experimental = 1
124
125 " Show whitespace
126 set list listchars=trail:•,extends:>,precedes:<,nbsp:␣,eol:↲,tab:→\,
127
128 " Force python3 for rst tables plugin
129 let g:rst_prefer_python_version = 2
130
131 " Python syntax highlighting
132 let g:python_highlight_builtins = 1
133 let g:python_highlight_builtin_objs = 1
134 let g:python_highlight_builtin_types = 1
135 let g:python_highlight_builtin_funcs = 1
136 let g:python_highlight_builtin_kwarg = 1
137 let g:python_highlight_exceptions = 1
138 let g:python_highlight_string_formatting = 1
139 let g:python_highlight_string_format = 1
140 let g:python_highlight_string_templates = 1
141 let g:python_highlight_class_vars = 1
142 let g:python_highlight_operators = 1
143
144 " Python indent
145 autocmd FileType python setlocal foldmethod=indent foldnestmax=2
146
147 " Paren highlighting
148 hi MatchParen cterm=underline ctermbg=none ctermfg=none
149
150 " Activate tagbar with F8
151 nmap <F8> :TagbarToggle<CR>
152
153 " Set path to doq
154 let g:pydocstring_doq_path= "/home/max/.local/bin/doq"
155
156
157 " Bindings
158 " Clipboard
159 noremap <Leader>y "+y
160 noremap <Leader>p "+p
161
162 let g:ctrlp_cache_dir = $HOME . '/.cache/ctrlp'
163 if executable('ag')
164     let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
165 endif
166
167 " Auto formatters
168 let g:formatdef_autopep8 = "'autopep8 --aggressive --aggressive - --range '.a:firstline.' '.a:lastline"
169 let g:formatters_python = ['autopep8']
170 noremap <F3> :Autoformat<CR>
171
172 let g:pymode_lint = 0
173 let g:pymode_folding = 1
174 let g:pymode_rope = 1
175 let g:pymode_rope_completion = 1
176
177 augroup unset_folding_in_insert_mode
178     autocmd!
179     autocmd InsertEnter *.py setlocal foldmethod=marker
180     autocmd InsertLeave *.py setlocal foldmethod=expr
181 augroup END