Skip to content

Instantly share code, notes, and snippets.

Created August 20, 2009 12:05
Show Gist options
  • Save anonymous/171022 to your computer and use it in GitHub Desktop.
Save anonymous/171022 to your computer and use it in GitHub Desktop.
" Цветовая схема, color
colorscheme tutticolori
" Включить подсветку синтаксиса
syntax on
" == set number, установить нумерацию
set nu
" Проверять файл на кодировку в следующем порядке
set fileencodings=ucs-bom,utf-8,cp1251,default,latin1
" Шрифт для gvim
set guifont=Courier\ New\ 14
" Табуляция = 4 пробелам, ts
set tabstop=4
" == set sw=4, сдвиг при увеличении/уменьшении отступов
set shiftwidth=4
" Не заменять табы пробелами
set noexpandtab
" == set autoindent, автоотступ
set ai
" Показать командную строку
set showcmd
" При поиске файлов игнорировать эти (временные, исполняемые MS и т.п.)
set wildignore=*.bak,*.exe,*.pyc,*.*~
" Кодировка по умолчанию
set encoding=utf-8
" Кодировка терминала
set termencoding=utf-8
" Кодировка для сохранения
"set fileencoding=utf-8
" Включить фолдинг
set foldenable
" Фолдить по (syntax - синтаксису, indent - отступ)
set fdm=indent
" Все должны быть открыты
set foldlevelstart=10
" Открывать все при наведении
"set foldopen=all
" менять рабочий каталог на тот, где файл
set autochdir
" Не делать резервных копий
set nobackup
" не записывать бэкапов
set nowritebackup
" не создавать swap-файлов
set noswapfile
" Не различать БоЛьшие и маЛые
set ic
" Подсветка найденных
set hls is
" режим несовместимости с vi
set nocompatible
" порядок действий при бэкспейсе в режиме вставки
set backspace=indent,eol,start
" хранить 500 записей истории
set history=500
" показывать позицию курсора всегда
set ruler
" Всегда показывать мышку
set mouse=a
" Устанавливаем аббревиатуры для режима вставки, сначала очистив (см. :help abbreviate)
:iabc
:iabbrev #- #------------------------------------------------------------------------------#
:iabbrev /*- /*----------------------------------------------------------------------------*/
let python_highlight_all = 1 " Подсвечивать по питону все, что можно
nmap <C-P> O<esc>p
" Переход по буферам
" http://vimdoc.sourceforge.net/htmldoc/windows.html#:sbnext
" http://vim.wikia.com/wiki/Vim_buffer_FAQ
nmap <S-tab> :bprevious<cr>
nmap <tab> :bnext<cr>
map <esc><esc> :buffers<cr>
" В нормальном режиме Backspace приводит к переходу на предыдущий редактируемый буфер.
nmap <backspace> :b#<cr>
" Создание закладок
" nmap <C-t> :tabnew<cr>
" imap <C-t> <ESC>:tabnew<cr>
" Открыть и спрятать дерево файлов и список тегов
" map <C-B> :NERDTreeToggle<CR>
" map <C-C> :TlistToggle<CR>
" создание меню для переключения кодировок
"set wildmenu
"set wcm=<Tab>
"menu Encoding.CP1251 :e ++enc=cp1251<CR>
"menu Encoding.CP866 :e ++enc=cp866<CR>
"menu Encoding.KOI8-U :e ++enc=koi8-u<CR>
"menu Encoding.UTF-8 :e ++enc=utf-8<CR>
"map <F8> :emenu Encoding.<TAB>
" Установить сохранение на F2
imap <F2> <esc>:w<cr>i
nmap <F2> :w<cr>
" при создании файлов с расширением py добавлять заголовок
function! BufNewFile_PY()
0put = '#!/usr/bin/env python'
1put = '#coding:utf8'
normal G
endfunction
autocmd BufNewFile *.py call BufNewFile_PY()
" При работе с файлами шаблонов mako устанавливать соответствующий синтаксис
autocmd BufNewFile,BufRead *.mako set syn=mako
" Автозакрывать скобки
imap [ []<LEFT>
imap ( ()<LEFT>
imap { {}<LEFT>
" Запускать файл по <F5>:
function Run()
let $ext=expand("%:e") " получаем расширение файла % через модификатор :e
if $ext=='py'
!/usr/bin/env python "%"
elseif $ext=='php'
!/usr/bin/env php "%"
endif
endfunction
map <F5> :call Run()<cr>
" Установка переноса в тексте для всего, кроме скриптов
:autocmd BufEnter *.py,*.php,*.css,*.html,*.htm,*.js :set nowrap
:autocmd BufLeave *.py,*.php,*.css,*.html,*.htm,*.js :set wrap
" Переход между окнами по Ctrl + стрелки вверх/низ. Очень удобно.
:map <C-DOWN> <C-W>j<C-W>_
:map <C-UP> <C-W>k<C-W>_
" Ставим на F12 включение - выключение номеров строк.
:map <F12> :set number!<cr>
" Для чтения файлов MS Word (нужен установленный antiword)
:autocmd BufReadPre *.doc set ro
:autocmd BufReadPre *.doc set hlsearch!
:autocmd BufReadPost *.doc %!antiword "%"
" Сохранение и загрузка сессии по горячим клавишам
nmap <C-M> :mksession! /home/kawaikunee/.vim_session<cr>
nmap <C-L> :source /home/kawaikunee/.vim_session<cr>
" Плагин для автовсплывания автодополнения
" http://www.vim.org/scripts/script.php?script_id=1879
" :AutoComplPopDisable
" :AutoComplPopEnable
" Автодополнение для языков
" http://amix.dk/blog/viewEntry/19021
autocmd FileType python set omnifunc=pythoncomplete#Complete
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
" Добавить или убрать словарь
" http://vim.wikia.com/wiki/Dictionary_completions
" :set dictionary+=/usr/share/dict/words
" :set dictionary-=/usr/share/dict/words
" Скрипт для срабатывания автодополнения на Tab
" http://wiki.rsdn.ru/(S(ygop3rf0tsljfle2jjd2i445))/vim-plugins.ashx
set complete=""
set complete+=.
set complete+=k
set complete+=b
set complete+=t
set completeopt-=preview
set completeopt+=longest
set mps-=[:]
function! SuperCleverTab()
if strpart( getline('.'), 0, col('.')-1 ) =~ '^\s*$'
return "\<Tab>"
else
"if &omnifunc != ""
" return "\<C-X>\<C-O>"
"elseif &dictionary != ""
" return "\<C-K>"
"else
return "\<C-N>"
"endif
endif
endfunction
" На Crtl-Space делаем дополнение по синтаксису,
" а на Tab - по текущим словарям (открытые буферы и подключенные словари)
imap <Tab> <C-R>=SuperCleverTab()<cr>
imap <C-@> <C-X><C-O>
" Чтобы в нормальном режиме срабатывали сочетания клавиш в килиллице
map ё `
map й q
map ц w
map у e
map к r
map е t
map н y
map г u
map ш i
map щ o
map з p
map х [
map ъ ]
map ф a
map ы s
map в d
map а f
map п g
map р h
map о j
map л k
map д l
map ж ;
map э '
map я z
map ч x
map с c
map м v
map и b
map т n
map ь m
map б ,
map ю .
map Ё ~
map Й Q
map Ц W
map У E
map К R
map Е T
map Н Y
map Г U
map Ш I
map Щ O
map З P
map Х {
map Ъ }
map Ф A
map Ы S
map В D
map А F
map П G
map Р H
map О J
map Л K
map Д L
map Ж :
map Э "
map Я Z
map Ч X
map С C
map М V
map И B
map Т N
map Ь M
map Б <
map Ю >
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment