" Кодировка по умолчанию
set encoding=utf-8
" Кодировка терминала
set termencoding=utf-8
" Приоритет определения кодировки открываемого файла
set fileencodings=utf-8,cp1251,cp866,koi8-r
" На случай если vim собран без поддержки кириллицы - на скорость не влияет
set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0
" Отключить режим совместимости с папой vi, для свистелок-перделок
set nocompatible
" Не создавать временные копии файлов в разделе подкачки
set noswapfile
" Не создавать бекапы
set nobackup
" Не оставлять бекап после закрытия файла
set nowritebackup
" Вкл подсветку синтаксиса
syntax on
" Определение синтаксиса по типу файла, хотя есть и комбинированный синтаксис
filetype on
" Включить плагины для типов файлов (у меня сниппеты)
filetype plugin on
" Перезаписать и перечитать .vimrc сразу после его изменения
autocmd! bufwritepost $MYVIMRC source $MYVIMRC
" Отключить пищик системника
set novisualbell
set t_vb=
set mouse=
set mousehide
" Текущий каталог = каталог текущего файла
set autochdir
set browsedir=buffer
" История изменений
set history=128
set undolevels=2048
" Показывать команды отдельной строкой
set showcmd
" Показывать статусбар
set ruler
" Показывать линию вкладок (табов)
set showtabline=2
" Что и как показывать в строке статуса
set statusline=%<%f%h%m%r%=format=%{&fileformat}\ file=%{&fileencoding}\ enc=%{&encoding}\ %b\ 0x%B\ %l,%c%V\ %P
set laststatus=2
" Доступ к заголовку окна терминала, в котором открыт vim
set title
" Спрашивать подтверждение при критичных изменениях файлов
set confirm
set hidden
set autoread
" Темный фон
set background=dark
" Курсор в цвет символа под ним или в серый
highlight lCursor guifg=NONE guibg=Cyan
" Показывать номера строк
set number
set showmatch
set nowrap
" Подсвечивать острые скобки, так можно подсветить все что угодно
set matchpairs+=<:>
set backspace=indent,eol,start
" Автоотступы
set autoindent
" Таб = 4 пробела
set tabstop=4 shiftwidth=4 expandtab
set smartindent
" Что-то для корректной копипасты с отступами
set pastetoggle=
set splitbelow
" Регистронезависимость.. Где? Хз..
set ignorecase
set smartcase
" Не подсвечивать найденное
set nohlsearch
set incsearch
" Автодополнение, можно вписывать все что угодно
imap [ []<left>
imap ( ()<left>
imap < <><left>
"imap { {}<left>
" F3 - Удалить все концевые пробелы, заменить табы на пробелы
nmap <F3> :retab<cr>:1,$s/[ ]*$//<cr><C-o>
vmap <F3> <esc>:retab<cr>:1,$s/[ ]*$//<cr><C-o>i
imap <F3> <esc>:retab<cr>:1,$s/[ ]*$//<cr><C-o>i
" F2 - Сохранить файл
nmap <F2> :w<cr>
vmap <F2> <esc>:w<cr>i
imap <F2> <esc>:w<cr>i
" Shift+[Left/Right]Arrow - Прыгаем по открытым табам (Шифт+стрелка)
map <S-left> :tabp<cr>
nmap <S-left> :tabp<cr>
imap <S-left> <esc>:tabp<cr>i
map <S-right> :tabn<cr>
nmap <S-right> :tabn<cr>
imap <S-right> <esc>:tabn<cr>i
" Shift+Tab - Открыть новую вкладку
map <S-tab> :tabnew<cr>
vmap <S-tab> <esc>:tabnew<cr>
imap <S-tab> <esc>:tabnew<cr>
" F12 - Открыть файловый менеджер
map <F12> <S-tab>:e ./<cr>
vmap <F12> <esc><S-tab>:e ./<cr>
imap <F12> <esc><S-tab>:e ./<cr>