-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinit.vim
More file actions
289 lines (259 loc) · 11.5 KB
/
init.vim
File metadata and controls
289 lines (259 loc) · 11.5 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
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
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
"╔═══════════════════════════════════════════════════════════════════════════╗
"║ Copyright © 2021 - 2025 Sam4uk ║
"║ ║
"║Permission is hereby granted, free of charge , to any person obtaining a║
"║copy of this software and associated documentation files (the “Software”),║
"║to deal in the Software without restriction, including without limitation║
"║the rights to use, copy, modify, merge, publish, distribute, sublicense,║
"║and/or sell copies of the Software, and to permit persons to whom the║
"║Software is furnished to do so, subject to the following conditions:║
"║ ║
"║The above copyright notice and this permission notice shall be included in║
"║all copies or substantial portions of the Software. ║
"║ ║
"║THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR║
"║IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,║
"║FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE║
"║AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER║
"║LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING║
"║FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER║
"║DEALINGS IN THE SOFTWARE. ║
"║ ║
"║ ║
"║ Last update:26-02-25 23:50:07║
"╚═══════════════════════════════════════════════════════════════════════════╝
" AUTO LOAD PLAGIN MANAGER {{{
let it_NVim = has('nvim')
let it_Win32 = has('win32')
let it_gVim = has('gvim')
let it_Vim = !it_NVim
" додаємо рядки до заголовку. Дату початку проекту
" та дати реданування конфігу у редаторі у форматі 2021 - 20ХХ
autocmd! bufwritepre $MYVIMRC call setline(2, '"║ Copyright © 2021 - '.strftime("%Y").' Sam4uk ║')
autocmd! bufwritepre $MYVIMRC call setline(23, '"║ Last update:'.strftime("%d-%m-%y %H:%M:%S║"))
autocmd! bufwritepost $MYVIMRC source $MYVIMRC
if it_NVim
if empty(glob('~/.local/share/nvim/site/autoload/plug.vim'))
:silent !wget -P ~/.local/share/nvim/site/autoload/ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
endif
call plug#begin()
endif
if it_Vim
if empty(glob('~/.vim/autoload/plug.vim'))
:silent !wget -P ~/.vim/autoload/ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
endif
call plug#begin('~/.vim/plugged')
endif
" }}}
" ПЛАГІНИ {{{
" ДЛЯ Vim {{{
if it_Vim
Plug 'dracula/vim', {'name': 'dracula'} " Кольорова схема
Plug 'NLKNguyen/papercolor-theme'
endif
" }}}
" ДЛЯ NVim{{{
if it_NVim
Plug 'ayu-theme/ayu-vim' " Кольорова схема
Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug']}
else
" Налаштування для Vim щоб був схожий на NVim
Plug 'noahfrederick/vim-neovim-defaults'
endif
" }}}
" ЗАГАЛЬНІ{{{
Plug 'normen/vim-pio'
Plug 'tpope/vim-surround'
Plug 'vim-airline/vim-airline' " Можифікувати рядок статусу
Plug 'vim-airline/vim-airline-themes'
Plug 'rhysd/vim-clang-format', {'for': ['c','cxx','cpp','h','hxx','hpp']}
" FuzzyFinder (для шуидкого пошуку)
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
" NERDTree - Швидкий перегляд файлів
Plug 'preservim/nerdtree'
" Сoc - автодоповнення
" Plug 'neoclide/coc.nvim', {'branch': 'release'}
" Доповнення для NERDTree
Plug 'tiagofumo/vim-nerdtree-syntax-highlight'
Plug 'scrooloose/nerdcommenter'
" Доповнення для Git, а такод іконки для NERDTree
Plug 'airblade/vim-gitgutter'
Plug 'ryanoasis/vim-devicons'
" Перевірка синтаксисуа
Plug 'scrooloose/syntastic'
" Плагин автозавершення
" Plug 'Valloric/YouCompleteMe'
" }}}
" }}}
" {{{
call plug#end()
" }}}
" НАЛАШТУВАННЯ ДЛЯ Vim {{{
if it_Vim
" вимкнути режим сумісності з класичним редактором Vi
set nocompatible
filetype plugin indent on
" завжди відображати рядок стану
set laststatus=2
set hlsearch incsearch
syntax enable
let g:coc_disable_startup_warning = 1
" кращий бекап, свап та інші збереження для Vim (NVim має прекрасні за
" замовчуванням
set directory=~/.vim/dirs/tmp " directory to place swap files in
set backup " make backup files
set backupdir=~/.vim/dirs/backups " where to put backup files
set undofile " persistent undos - undo after you re-open the file
set undodir=~/.vim/dirs/undos
set viminfo+=n~/.vim/dirs/viminfo
" create needed directories if they don't exist
if !isdirectory(&backupdir)
call mkdir(&backupdir, "p")
endif
if !isdirectory(&directory)
call mkdir(&directory, "p")
endif
if !isdirectory(&undodir)
call mkdir(&undodir, "p")
endif
if empty(glob("~/.vim/plugged/vim-airline/autoload/airline.vim"))
:PlugInstall
endif
colorscheme dracula
endif
" }}}
" НАЛАШТУВАННЯ NVim {{{
if it_NVim
if empty(glob("~/.config/nvim/plugged/vim-airline/autoload/airline.vim"))
:PlugInstall
endif
set termguicolors
colorscheme ayu
" set background=dark
let ayucolor="dark"
endif
" }}}
" НАЛАШТУВАННЯ ДЛЯ Win32 {{{
if it_Win32
" if empty(glob("~/.vim/plugged/vim-airline/autoload/airline.vim"))
" :PlugInstall
" endif
" якщо раптом доведеться запустити вім у вінді
" НЕ ДАЙ БОГ
" кодування
set encoding=cp2151
else
set encoding=utf-8
set termencoding=utf-8
endif
" }}}
" GUI {{{
if has('gui_running') || it_NVim || (&term =~? 'mlterm\|xterm\|xterm-256\|screen-256')
if !has('gui_running')
let &t_Co = 256
endif
" colorscheme vim-monokai-tasty
else
" colorscheme delek
endif
" }}}
" КОНФІГУРАЦІЯ {{{
highlight ColorColumn ctermbg=black
call matchadd('ColorColumn','\%80v',100)
" задаємо кількість рядків при скролінгу
set scrolloff=4
" (no)wrap динамічний (не)перенос довгих рядків
set wrap
" переносити цілі рядки
set linebreak
"set hidden "
"set mouse=a "
"set mousehide "
" показувати не завершені команди в статус бар
set showcmd wildmenu
" Показуємо лінійку та номерацію рядків відносно поточного рядка
set ruler number relativenumber cursorline cursorcolumn
" Підсвітимо пробіли та табуляцію
set list listchars=tab:╺╴,eol:¬,trail:·,extends:→,precedes:←
" мигнути екраном якщо помилка
set visualbell
" Показати ім`я файла в заголовку термінлу
set title
" змінюємо розмір історії команд та змін
set history=127 undolevels=2048
"set fileformat=unix
set fencs=utf-8,cp1251,koi8-r,cp866
" перечити файл якщо змінено ззовні
set autoread
set expandtab tabstop=4 autoindent softtabstop=4 shiftwidth=4 cindent smartindent
"set wrap linebreak nolist textwidth=80
" НАЛАШТУВАННЯ ВИГЯЛДУ КУРСОРУ {{{
set ttimeoutlen=10 "знажуємо затримку виведення помлідовностей
let &t_SI.="\e[5 q" " режим вставки
let &t_SR.="\e[3 q" " режим заміни
let &t_EI.="\e[2 q" " нормальний режим
" де
" 1 - моготливий прямокутник
" 2 - звичайний прямокутник
" 3 - миготливе підкреслення
" 4 - звичайне підкреслення
" 5 - миготлива риска
" 6 - риска
" }}}
" РОЗУМІЄ УКРАЇНСЬКУ {{{
set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫІЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSSTUVWXYZ,фисвуапршолдьтщзйкыіегмцчня;abcdefghijklmnopqrsstuvwxyz
" }}}
" ФОЛДИНГ {{{
set foldenable
set foldmethod=syntax " визначати блоки тексту по синтаксису
set foldmethod=indent " визначати блоки зп відступом
set foldcolumn=3 " Показати полосу для керування згоротанням
set foldlevel=1 " Перший рівень вкладеності відкритий, решта закриті
set foldopen=all " автоматическое открытие сверток при заходе в них
set tags=tags\ $VIMRUNTIME/systags " Шукати теги в поточному каталозі (теги генерируются ctags)
" }}}
" AIRLINE {{{
let g:airline#extensions#tabline#enabled = 1
let g:airline_powerline_fonts = 1 " Увімкнути підтримку Powerline шрифтів
let g:airline#extensions#keymap#enabled = 1 "Не показывать текущий маппинг
let g:airline_section_z = "\ue0a1:%l/%L Col:%c" " Кастомна графа положення курсору
let g:Powerline_symbols='unicode' " Підтримка unicode
let g:airline#extensions#xkblayout#enabled = 1 "
" }}}
" NONAME {{{
augroup config_settings
autocmd!
autocmd FileType make set tabstop=8 shiftwidth=8
autocmd FileType markdown set nowrap
autocmd FileType vim setlocal foldlevel=0 foldmethod=marker
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType tt2html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType c set omnifunc=ccomplete#Complete
augroup END
" }}}
" КЛАВІШІ {{{
map <Down> <NOP>
map <Up> <NOP>
map <Left> <NOP>
map <Right> <NOP>
" }}}
" Clang-format {{{
let g:clang_format#style_options = {
\ "Language" : "Cpp",
\ "BasedOnStyle" : "Google",
\ "AlignConsecutiveMacros" : "true",
\ "AlignEscapedNewlines" : "Right",
\ "Standard" : "C++17"}
"}}}
" EMPTY {{{
" }}}
" EMPTY {{{
" }}}
" EMPTY {{{
" }}}