forked from sontek/homies
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_vimrc
191 lines (160 loc) · 6.29 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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
map <F2> :setlocal spell! spelllang=en_us<CR>
map <F3> :NERDTreeToggle<CR>
map <F4> :TagbarToggle<CR>
map <F5> :PymodeLint<CR>
map <F6> :PymodeLintToggle<CR>
map <F7> :Black<CR>
map ,* *<C-O>:%s///gn<CR>
set hidden
set number
set cursorline
set tabstop=2 shiftwidth=2 expandtab
let &t_Co=256
set clipboard=unnamed
set mouse=n
"set exrc
vnoremap // y/<C-R>"<CR>
set nocompatible " be iMproved, required
filetype off " required
"=====================================================
" Vundle settings
"=====================================================
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim' " let Vundle manage Vundle, required
"---------=== Code/project navigation ===-------------
Plugin 'scrooloose/nerdtree' " Project and file navigation
Plugin 'majutsushi/tagbar' " Class/module browser
"------------------=== Other ===----------------------
Plugin 'bling/vim-airline' " Lean & mean status/tabline for vim
Plugin 'vim-airline/vim-airline-themes'
Plugin 'fisadev/FixedTaskList.vim' " Pending tasks list
Plugin 'rosenfeld/conque-term' " Consoles as buffers
Plugin 'tpope/vim-surround' " Parentheses, brackets, quotes, XML tags, and more
"--------------=== Snippets support ===---------------
Plugin 'garbas/vim-snipmate' " Snippets manager
Plugin 'MarcWeber/vim-addon-mw-utils' " dependencies #1
Plugin 'tomtom/tlib_vim' " dependencies #2
Plugin 'honza/vim-snippets' " snippets repo
"---------------=== Languages support ===-------------
" --- Python ---
Plugin 'klen/python-mode' " Python mode (docs, refactor, lints, highlighting, run and ipdb and more)
Plugin 'davidhalter/jedi-vim' " Jedi-vim autocomplete plugin
Plugin 'mitsuhiko/vim-jinja' " Jinja support for vim
Plugin 'mitsuhiko/vim-python-combined' " Combined Python 2/3 for Vim
Plugin 'psf/black'
" --- Go ---
" Plugin 'fatih/vim-go'
" --- Syntax highlight---
Plugin 'docker/docker' , {'rtp': '/contrib/syntax/vim/'}
Plugin 'cespare/vim-toml'
call vundle#end() " required
filetype on
filetype plugin on
filetype plugin indent on
"=====================================================
" General settings
"=====================================================
set backspace=indent,eol,start
aunmenu Help.
aunmenu Window.
let no_buffers_menu=1
set mousemodel=popup
set ruler
set completeopt-=preview
set gcr=a:blinkon0
set cursorline
set ttyfast
" включить подсветку кода
syntax on
"set guifont=Ubuntu\ Mono\ derivative\ Powerline\ 10
tab sball
set switchbuf=useopen
" отключаем пищалку и мигание
set visualbell t_vb=
set novisualbell
set enc=utf-8 " utf-8 по дефолту в файлах
set ls=2 " всегда показываем статусбар
set incsearch " инкреминтируемый поиск
set hlsearch " подсветка результатов поиска
set nu " показывать номера строк
set scrolloff=5 " 5 строк при скролле за раз
" отключаем бэкапы и своп-файлы
set nobackup " no backup files
set nowritebackup " only in case you don't want a backup file while editing
set noswapfile " no swap files
" прячем панельки
"set guioptions-=m " меню
set guioptions-=T " тулбар
"set guioptions-=r " скроллбары
" настройка на Tab
set smarttab
set tabstop=8
" при переходе за границу в 80 символов в Ruby/Python/js/C/C++ подсвечиваем на темном фоне текст
augroup vimrc_autocmds
autocmd!
autocmd FileType ruby,python,javascript,c,cpp highlight Excess ctermbg=DarkGrey guibg=Black
autocmd FileType ruby,python,javascript,c,cpp match Excess /\%120v.*/
autocmd FileType ruby,python,javascript,c,cpp set nowrap
augroup END
" указываем каталог с настройками SnipMate
let g:snippets_dir = "~/.vim/vim-snippets/snippets"
let g:snipMate = { 'snippet_version' : 1 }
" настройки Vim-Airline
set laststatus=2
let g:airline_theme='badwolf'
" let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#formatter = 'unique_tail'
let g:tagbar_autofocus = 1 " автофокус на Tagbar при открытии
" NerdTree настройки
"игноррируемые файлы с расширениями
let NERDTreeIgnore=['\~$', '\.pyc$', '\.pyo$', '\.class$', 'pip-log\.txt$', '\.o$']
" TaskList настройки
" map <F2> :TaskList<CR> " отобразить список тасков на F2
" Работа буфферами
map <C-q> :bd<CR> " CTRL+Q - закрыть текущий буффер
"=====================================================
"" Python-mode settings
"=====================================================
"" отключаем автокомплит по коду (у нас вместо него используется jedi-vim)
let g:pymode_rope = 0
let g:pymode_rope_completion = 0
let g:pymode_rope_complete_on_dot = 0
" документация
let g:pymode_doc = 0
let g:pymode_doc_key = 'K'
" " проверка кода
let g:pymode_lint = 1
" let g:pymode_lint_checkers = ['flake8', 'mccabe']
" let g:pymode_lint_checker = "flake8"
" let g:pymode_lint_ignore=['E501' ,'W601', 'C0110', 'E711', 'E402', 'C901']
let g:pymode_lint_ignore=['E203']
" " провека кода после сохранения
let g:pymode_lint_write = 1
"
" " поддержка virtualenv
let g:pymode_virtualenv = 1
"
" " установка breakpoints
let g:pymode_breakpoint = 1
let g:pymode_breakpoint_key = '<leader>b'
"
" " подстветка синтаксиса
let g:pymode_syntax = 1
let g:pymode_syntax_all = 1
let g:pymode_syntax_indent_errors = g:pymode_syntax_all
let g:pymode_syntax_space_errors = g:pymode_syntax_all
"
" " отключить autofold по коду
let g:pymode_folding = 0
"
" " возможность запускать код
let g:pymode_run = 0
let g:pymode_python = 'python3'
let g:pymode_options_max_line_length = 120
let g:jedi#popup_select_first = 1
let g:jedi#show_call_signatures = "0"
" enable line numbers
let g:NERDTreeShowLineNumbers=1