Skip to content

Instantly share code, notes, and snippets.

@rdbox
Last active Jul 20, 2016
Embed
What would you like to do?
""Last update:16.06.2016 21:36
"Показывать номера строк
set number
"Включить подсветку синтаксиса
syntax on
set hlsearch
"Очищение экрана от поиска подсветки hlsearch
nnoremap <C-l> :nohlsearch<CR><C-l>
"Поиск в процессе набора
set incsearch
" умная зависимость от регистра. Детали `:h smartcase`
set ignorecase
set smartcase
" Кодировка текста по умолчанию utf8
set termencoding=utf8
" Включаем несовместимость настроек с Vi, так как Vi нам и не понадобится
set nocompatible
" Показывать незавершённые команды в статусбаре
set showcmd
" Не выгружать буфер, когда переключаемся на другой
" Это позволяет редактировать несколько файлов в один и тот же момент без
" необходимости сохранения каждый раз
" когда переключаешься между ними
set hidden
" Скрыть панель в gui версии
set guioptions-=T
" Сделать строку команд высотой в одну строку
set ch=1
" Скрывать указатель мыши, когда печатаем
set mousehide
" Не переносить строки
set nowrap
" Отображение парных символов
set showmatch
" Навигация с учетом русских символов, учитывается командами
" следующее/предыдущее слово и т.п.
set iskeyword=@,48-57,_,192-255
" Удаление символов бэкспэйсом в Windows
set backspace=indent,eol,start
" Увеличение размера истории
set history=200
" Дополнительная информация в строке состояния
set wildmenu
" сколько строк внизу и вверху экрана показывать при скроллинге
set scroll=3
" использовать больше цветов в терминале
set t_Co=256
" использовать диалоги вместо сообщений об ошибках
set confirm
"Автосохранение конфигурационных файлов
autocmd! bufwritepost $MYVIMRC source $MYVIMRC
"Изменяет шрифт строки статуса (делает его не жирным)
hi StatusLine gui=reverse cterm=reverse
" всегда показывать строку состояния
set laststatus=2
"Отключение линейку
set noruler
"" Подсвечивать табы и пробелы в конце строки
set list " включить подсветку
set listchars=tab:>-,trail:- " установить символы, которыми будет
"осуществляться подсветка
"" Формат строки состояния
" fileformat - формат файла (unix, dos); fileencoding - кодировка файла;
" encoding - кодировка терминала; TYPE - тип файла, затем коды символа под
" курсором;
" позиция курсора (строка, символ в строке); процент прочитанного в файле;
" кол-во строк в файле;
set statusline=%F%m%r%h%w\[FF,FE,TE=%{&fileformat},%{&fileencoding},%{&encoding}\]\ [TYPE=%Y]\[ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]
" при закрытии файла сохранить 'вид'
au BufWinLeave *.* silent mkview
" при открытии - восстановить сохранённый
au BufWinEnter *.* silent loadview
set noswapfile " не использовать своп-файл (в него скидываются открытыебуферы)
set browsedir=current
set visualbell " вместо писка бипером мигать курсором при ошибках ввода
set clipboard=unnamed " во избежание лишней путаницы использовать системныйбуфер обмена вместо буфера Vim
set backup " включить сохранение резервных копий
set title " показывать имя буфера в заголовке терминала
set undolevels=2048 " хранить историю изменений числом N
set whichwrap=b,<,>,[,],l,h " перемещать курсор на следующую строку при нажатии на клавиши вправо-влево и пр.
" При вставке фрагмента сохраняет отступ
set pastetoggle=
"подсвечивает все слова, которые совпадают со словом под курсором.
"autocmd CursorMoved * silent! exe printf("match Search /\\<%s\\>/",expand('<cword>'))
" поиск выделенного текста (начинать искать фрагмент при его выделении)
vnoremap <silent>* <ESC>:call VisualSearch()<CR>/<C-R>/<CR>
vnoremap <silent># <ESC>:call VisualSearch()<CR>?<C-R>/<CR>
"НАСТРОЙКИ РАБОТЫ С ФАЙЛАМИ
"Кодировка редактора (терминала) по умолчанию (при создании все файлы
"приводятся к этой кодировке)
if has('win32')
set encoding=cp1251
else
set encoding=utf-8
set termencoding=utf-8
endif
"" Перед сохранением .vimrc обновлять дату последнего изменения
autocmd! bufwritepre $MYVIMRC call setline(1, '"" Last update:'.strftime("%d.%m.%Y %H:%M"))
"НАСТРОЙКИ ОТСТУПА
set shiftwidth=4 " размер отступов (нажатие на << или >>)
set tabstop=4 " ширина табуляции
set softtabstop=4 " ширина 'мягкого' таба
set autoindent " ai - включить автоотступы (копируется отступ предыдущей строки)
set cindent " ci - отступы в стиле С
set expandtab " преобразовать табуляцию в пробелы
set smartindent " Умные отступы (например, автоотступ после {)
" Для указанных типов файлов отключает замену табов пробелами и меняет ширину
" отступа
au FileType crontab,fstab,make set noexpandtab tabstop=8 shiftwidth=8
"НАСТРОЙКИ ВНЕШНЕГО ВИДА
" Установка шрифта (для Windows и Linux)
" настройка внешнего вида для GUI
if has('gui')
" отключаем графические табы (останутся текстовые,
" занимают меньше места на экране)
set guioptions-=e
" отключить показ иконок в окне GUI (файл, сохранить и" т.д.)
set guioptions-=T
if has('win32')
set
guifont=Lucida_Console:h10:cRUSSIAN::
else
set guifont=Terminus\10
endif
endif
"НАСТРОЙКИ ПЕРЕКЛЮЧЕНИЯ РАСКЛАДОК КЛАВИАТУРЫ
"" Взято у konishchevdmitry
set keymap=russian-jcukenwin " настраиваем переключение раскладок клавиатурыпо <C-^>
set iminsert=0 " раскладка по умолчанию - английская
set imsearch=0 " аналогично для строки поиска и ввода команд
function! MyKeyMapHighlight()
if &iminsert == 0 " при английской раскладке статусная строка текущегоa окна будет серого цвета
hi StatusLine ctermfg=White guifg=White
else " а при русской - зеленого.
hi StatusLine ctermfg=DarkRed guifg=DarkRed
endif
endfunction
call MyKeyMapHighlight() " при старте Vim устанавливать цвет статусной строки
autocmd WinEnter * :call MyKeyMapHighlight() " при смене окна обновлять информацию о раскладках
" использовать Ctrl+F для переключения раскладок
cmap <silent> <C-F> <C-^>
imap <silent> <C-F> <C-^>X<Esc>:call MyKeyMapHighlight()<CR>a<C-H>
nmap <silent> <C-F> a<C-^><Esc>:call MyKeyMapHighlight()<CR>
vmap <silent> <C-F> <Esc>a<C-^><Esc>:call MyKeyMapHighlight()<CR>gv
"НАСТРОЙКИ ГОРЯЧИХ КЛАВИШ
nmap <C-S> :w<cr>
vmap <C-S> <esc>:w<cr>i
imap <C-S> <esc>:w<cr>i
" C(trl)+d - дублирование текущей строки
imap <C-d> <esc>yypi
"" Вырезать-копировать-вставить через Ctrl
" CTRL-X - вырезать
vnoremap <C-X> "+x
" CTRL-C - копировать
vnoremap <C-C> "+y
" CTRL-V вставить под курсором
map <C-V> "+gP
"" Отменить-вернуть через Ctrl
" отмена действия
noremap <C-Z> u
inoremap <C-Z> <C-O>u
"Включение плагинов
filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
filetype plugin indent on
filetype indent on
"Функция автодополнения по одной букве
function! SuperCleverTab()
if strpart( getline('.'), 0, col('.')-1 ) =~ '^\s*$'
return "\<Tab>"
else
return "\<C-p>"
endif
endfunction
inoremap <Tab> <C-R>=SuperCleverTab()<cr>
"Сохранить файл по <F2>
nmap <F2> :w!<CR>
imap <F2> <Esc>:w!<CR>
vmap <F2> <Esc>:w!<CR>
"Выйти из редактора по <F10>
nmap <F10> :q<CR>
imap <F10> <Esc>:q<CR>
vmap <F10> <Esc>:q<CR>
"Просмотр списка буферов по <F4>
nmap <F4> <Esc>:buffers<CR>
vmap <F4> <Esc>:buffers<CR>
imap <F4> <Esc><Esc>:buffers<CR>
"предыдущий буфер
map <F5> :bp<CR>
vmap <F5> <Esc>:bp<CR>i
imap <F5> <Esc>:bp<CR>i
"следующий буфер
map <F6> :bn<CR>
vmap <F6> <Esc>:bn<CR>i
imap <F6> <Esc>:bn<CR>i
"Переключение табов (вкладок) с помощью SHIFT+TAB и CTRL+TAB
map <S-TAB> :tabprevious<CR>
nmap <S-TAB> :tabprevious<CR>
imap <S-TAB> <Esc>:tabprevious<CR>i
map <C-TAB> :tabnext<CR>
nmap <C-TAB> :tabnext<CR>
imap <C-TAB> <Esc>:tabnext<CR>i
"Открытие\закрытие новой вкладки по CTRL+T и CTRL+W
nmap <C-t> :tabnew<CR>
imap <C-t> <Esc>:tabnew<CR>a
nmap <C-w> :tabclose<CR>
imap <C-w> <Esc>:tabclose<CR>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment