Skip to content

Instantly share code, notes, and snippets.

@mosquito
Created August 5, 2014 07:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mosquito/714afe3147828e01ac46 to your computer and use it in GitHub Desktop.
Save mosquito/714afe3147828e01ac46 to your computer and use it in GitHub Desktop.
scriptencoding utf-8
autocmd!
" Чтобы избежать необходимости выполнять переключение клавиатуры при вводе {{{
" команд Обычного режима
set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSTUVWXYZ,фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz
"}}}
set viminfo='100,%,/50,:50,<50,h
" Настройки буферов {{{
"set autowriteall " Записывать перед изменениями
set hidden
" }}}
" Цвета {{{
colorscheme murphy
set background=dark
" }}}
" Отступы {{{
filetype indent on " Включить отступы
filetype plugin on
" }}}
" Поиск {{{
set nohlsearch
set incsearch
" }}}
" Поведение строк {{{
set autoindent " Отступы
set scrolloff=4 " Количество строк вокруг курсора
"set number " Номера строк
set nowrap " Не разрывать строки
set showmatch " Показывать совпадающую скобку
" }}}
" Настройки табуляторов {{{
set softtabstop=0
set shiftwidth=2
set tabstop=2
set list! listchars=tab:‣\
" }}}
" Настройка свертки {{{
set foldmethod=marker
set foldlevel=100
set foldmarker={{{{{,}}}}}
" }}}
" Показывать выделение после сдвига {{{
vnoremap < <gv
vnoremap > >gv
" }}}
" Интерфейс {{{
set nocompatible " Несовместимость с vi --- так удобнее
set backspace=indent,eol,start " Поведение клавиш
set termencoding=utf-8 " Кодировка терминала
syn on " Подсветка синтаксиса
set ruler " Строка статуса
set printoptions=paper:a4
" }}}
" Цвет комментариев {{{
highlight Comment ctermfg=Gray
"set list " Отображение непечатных символов
"set listchars=trail:~ " Отображать тильду вместо замыкающих пробелов
set laststatus=2 " Всегда показыать строку статуса
set wildmenu " Более удобное дополнение
set showcmd " Показывать введенные команды и размер выделенной области
set vb t_vb= " Отключить пищалку
set splitbelow " Новое окно появляется внизу
" }}}
" Random string {{{
function! Random()
return system('echo $RANDOM $RANDOM `date +%s` | base64 | tr -dc a-z0-9')
endfunction
imap <silent> <F8> <C-R>=Random()<CR>
" }}}
" Горячие клавиши {{{
" Сохранение {{{
nnoremap <silent> <F2> :w<CR>
inoremap <silent> <F2> <Esc>:w<CR><Ins><Right>
nnoremap <silent> ^S :w<CR>
inoremap <silent> ^S <Esc>:w<CR><Ins><Right>
" }}}
" Свернуть {{{
nnoremap <silent> <F6> zc <CR>
inoremap <silent> <F6> <Esc> zc <CR><Ins><Right>
" }}}
" Разверуть {{{
nnoremap <silent> <F5> zO <CR>
inoremap <silent> <F5> <Esc> zO <CR><Ins><Right>
" }}}
" Свернуть все {{{
nnoremap <silent> <F7> zM <CR>
inoremap <silent> <F7> <Esc> zM <CR><Ins><Right>
" }}}
" Выход {{{
nnoremap <silent> <F10> :q<CR>
inoremap <silent> <F10> <Esc>:q<CR>
" }}}
" Переключение режима вставки {{{
set pastetoggle=<F3>
" }}}
" }}}
" Запрет замены {{{
function s:ForbidReplace()
if v:insertmode!=#'i'
call feedkeys("\<Insert>", "n")
endif
endfunction
augroup ForbidReplaceMode
autocmd!
autocmd InsertEnter * call s:ForbidReplace()
autocmd InsertChange * call s:ForbidReplace()
augroup END
inoremap <S-Insert> <ESC>:setl paste<CR>gi<C-R>+<ESC>:setl nopaste<CR>gi
imap {{{<CR> {<CR>}}}<Esc>O<Tab>
nmap <Home> ^
imap <Home> <Esc>I
set undolevels=200
set autoread
set backupdir=/tmp
if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\| exe "normal! g'\"" | endif
endif
" }}}
" Настройки разных типов файлов {{{
autocmd BufReadPost *.[ch] call On_C_Load()
autocmd BufReadPost *.{{{[Hh][Tt][Mm]?}}},*.tpl call On_HTML_Load()
autocmd BufReadPost *.phtml set filetype=php
let python_highlight_all = 1
autocmd FileType python map <buffer> <silent> +m :call ShowDoc("<C-R><C-W>")<CR>
autocmd FileType python map <buffer> <silent> <leader>ip <Esc>oimport IPython^Mshell = IPython.Shell.IPShell(argv=[])^Mshell.mainloop()^M<Esc>
autocmd FileType xthml set filetype=htmldjango
autocmd BufNewFile,BufRead .* set expandtab softtabstop=2 shiftwidth=2 tabstop=2
autocmd BufNewFile,BufRead * set expandtab softtabstop=2 shiftwidth=2 tabstop=2
autocmd! BufRead,BufNewFile *.json set syntax=javascript autoindent formatoptions=tcq2l textwidth=78 shiftwidth=2 softtabstop=2 tabstop=2 expandtab
autocmd! BufNewFile,BufRead *.py set expandtab softtabstop=2 shiftwidth=2 tabstop=2
autocmd! BufNewFile,BufRead *.rb set expandtab softtabstop=2 shiftwidth=2 tabstop=2
autocmd! BufNewFile,BufRead *.erb set expandtab softtabstop=2 shiftwidth=2 tabstop=2
autocmd! BufNewFile,BufRead *.c,*.cpp set cindent shiftwidth=2 noexpandtab
autocmd! BufNewFile,BufRead *.htm,*.html set cindent shiftwidth=2 noexpandtab
" }}}
au BufWinLeave * mkview
au BufWinEnter * silent loadview
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment