123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387 |
- set runtimepath=~/.vim,/home/xaionaro/.vim,/etc/vim,$VIMRUNTIME
- " To fix problems with arrow-keys in INSERT-mode
- set nocompatible
- " To be able to erase EOL using backspace
- set backspace=indent,eol,start
- " кодировка по-умолчанию
- set encoding=utf-8
- " фикс для русских клавиш
- "set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,х[,ъ],фa,ыs,вd,аf,пg,рh,оj,лk,дl,ж\\;,э',яz,чx,сc,мv,иb,тn,ьm,б\\,,ю.,ё`,ЙQ,ЦW,УE,КR,ЕT,НY,ГU,ШI,ЩO,ЗP,Х{,Ъ},ФA,ЫS,ВD,АF,ПG,РH,ОJ,ЛK,ДL,Ж:,Э\\",ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,Б<,Ю>,Ё~
- " маркер границы
- set textwidth=80
- set colorcolumn=50,72,80,120
- set textauto
- if !&diff
- " подсвечивать синтаксис
- syntax enable
- endif
- " показывать спец. символы
- set list
- set list listchars=tab:>.,eol:¶
- " определять тип файла автоматически, загружать плагины
- filetype plugin on
- filetype indent on
- " сворачивать по синтаксису
- set foldmethod=syntax
- set nofoldenable
- " автоматически менять каталог на текущий
- "set autochdir
- " хранить swap в отдельном каталоге
- set directory=/tmp/
- " меньше приоритета бинарным файлам при автодополнении
- set suffixes+=.png,.gif,.jpg,.jpeg,.ico
- " перечитывать изменённые файлы автоматически
- set autoread
- " использовать больше цветов в терминале
- set t_Co=256
- " цветова схема
- if (!has('gui_running') && filereadable(expand("$HOME/.vim/plugin/guicolorscheme.vim")))
- " Use the guicolorscheme plugin to makes 256-color or 88-color
- " terminal use GUI colors rather than cterm colors.
- runtime! plugin/guicolorscheme.vim
- " цвет всплывающего окна
- colorscheme kate
- else
- " For 8-color 16-color terminals or for gvim, just use the
- " regular :colorscheme command.
- "colorscheme kate
- colorscheme dark
- " set background=dark
- set guifont=Monospace\ 11
- " цвет всплывающего окна
- endif
- highlight Pmenu guibg=gray guifg=black gui=bold ctermbg=blue ctermfg=black
- " наследовать отступы предыдущей строки
- set autoindent
- " умные отступы на основе синтаксиса
- set smartindent
- " показывать строку с позицией курсора
- set ruler
- " Disabled due to high CPU load
- "set cursorline
- " показывать номера строк ...
- set number
- " ... в 4 символа минимум
- set numberwidth=3
- " показывать совпадающие скобки для HTML-тегов
- set matchpairs+=<:>
- " показывать строку вкладок всегда
- set showtabline=2
- " показывать строку статуса всегда
- set laststatus=2
- " использовать табуляцию в 4 пробела ...
- set tabstop=4
- " ... для мягких табуляций ...
- set softtabstop=4
- " ... и сдвигов строк
- set shiftwidth=4
- " удалять лишние пробелы при отступе
- set shiftround
- " использовать инкрементальный поиск
- set incsearch
- " использовать подсветку поиска
- set hlsearch
- " игнорировать регистр при поиске ...
- set ignorecase
- " ... если поисковый запрос в нижнем регистре
- set smartcase
- "Подсвечиваем все что можно подсвечивать
- let python_highlight_all = 1
- " более удобное передвижение внутри перенесенной строки
- nnoremap j gj
- nnoremap k gk
- vnoremap j gj
- vnoremap k gk
- "nnoremap <Down> gj
- "nnoremap <Up> gk
- "vnoremap <Down> gj
- "vnoremap <Up> gk
- "inoremap <Down> <C-o>gj
- "inoremap <Up> <C-o>gk
- "" порядок перебора кодировок
- set fileencodings=utf-8,windows-1251,iso-8859-15,koi8-r
- " включить перенос строк
- set wrap
- " символ переноса строки
- "set showbreak=____
- set showbreak=
- " переключение режима отступов при вставке
- set paste
- set pastetoggle=<F12>
- " отображать режим
- set showmode
- if has("gui_running")
- " использовать контекстное меню
- "set mousemodel=popup
- set mousemodel=extend
- " разрешить фокусу прыгать за мышью между окнами
- set mousefocus
- " не скрывать указатель при печати
- set nomousehide
- " сглаживание
- set antialias
- else
- " цветовая схема
- "colorscheme google
- "set background=light
- endif
- " настройки vim+latex
- set grepprg=grep\ -nH\ $*
- let g:tex_flavor='latex'
- " настройка проверки орфографии
- setlocal spell spelllang=ru_ru,en_us
- set nospell
- " использование мыши
- set mouse=a
- " настройки автодоплнения omnicomplete
- "set ofu=syntaxcomplete#Complete
- " дополнять после точки
- let OmniCpp_MayCompleteDot = 1
- " дополнять после ->
- let OmniCpp_MayCompleteArrow = 1
- " дополнять после ::
- let OmniCpp_MayCompleteScope = 1 " autocomplete with ::
- " выбирать первый элемент в списке, но не вставлять
- let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert)
- " показывать прототип функции
- let OmniCpp_ShowPrototypeInAbbr = 1
- "Настройка omnicomletion для Python (а так же для js, html и css)
- autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
- autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
- autocmd FileType css set omnifunc=csscomplete#CompleteCSS
- " путь к тегам
- set tags+=~/.vim/tags;./tags
- " автоматическое выставление флагов для исполняемых файлов
- function ModeChange()
- if getline(1) =~ "^#!"
- if getline(1) =~ "/bin/"
- silent !chmod a+x <afile>
- endif
- endif
- endfunction
- "Вызываем SnippletsEmu(см. дальше в топике) по ctrl-j
- "вместо tab по умолчанию (на табе автокомплит)
- let g:snippetsEmu_key = "<C-j>"
- " автоматическая генерация тегов при записи файла
- function GenerateTags()
- if expand("%:e") == "cpp" || expand("%:e") == "c" || expand("%:e") == "h"
- let ctags = "!ctags --recurse --append --c++-kinds=+p --fields=+iaS --extra=+q -f tags *"
- silent exec ctags
- unlet ctags
- endif
- endfunction
- " автоматическая генерация cscope
- function GenerateCScope()
- if expand("%:e") == "cpp" || expand("%:e") == "c" || expand("%:e") == "h"
- let cscope = "!cscope -Rb *"
- silent exec cscope
- unlet cscope
- endif
- endfunction
- " загрузка cscope при возможности
- function LoadCScope()
- if filereadable("cscope.out")
- cs add cscope.out
- endif
- endfunction
- au BufWritePost * call ModeChange()
- "au BufWritePost * call GenerateTags()
- "au BufWritePost * call GenerateCScope()
- "au BufRead * call LoadCScope()
- au BufWinLeave * silent! mkview
- "au BufWinEnter * silent! loadview
- command! Cscope :call GenerateTags()
- " автоматическое закрытие комментариев
- au FileType c,cpp,h,hpp inoremap /*<Space> /* */<Esc>3ha
- " подсветка ftl
- au! BufNewFile,BufRead *.ftl setfiletype ftl
- "au BufNewFile,BufRead *.json.ftl setfiletype ftl
- "au BufNewFile,BufRead *.xml.ftl setfiletype ftl
- " автоматически конвертировать unicode в ascii
- let g:ucs_encode_java = 1
- " NERDTree
- "autocmd VimEnter * NERDTree
- "autocmd BufEnter * NERDTreeMirror
- "autocmd VimEnter * wincmd w
- map <TAB> :wincmd w<CR>
- "map <C-Q> :wincmd k<CR>
- "map <C-J> :wincmd j<CR>
- map <F2> :NERDTreeTabsToggle<CR>
- "vmap <F2> <esc>:NERDTreeToggle<cr>
- "imap <F2> <esc>:NERDTreeToggle<cr>
- " Открытие/закрытие окна NERD_Tree (plugin-NERD_Tree)
- menu <silent> Plugin.File\ Explorer<tab><ESC>:cclose<CR> :NERDTreeToggle<cr>
- imenu <silent> Plugin.File\ Explorer<tab><ESC>:cclose<CR> <ESC>:NERDTreeToggle<cr>
- let NERDTreeShowHidden=1
- let NERDTreeHighlightCursorline=1
- let NERDTreeWinPos = 'right'
- let NERDTreeShowBookmarks = 1
- let NERDTreeIgnore = ['\~$', '*.pyc', '*.pyo']
- let NERDChristmasTree = 0
- let g:nerdtree_tabs_open_on_gui_startup = 0
- let g:nerdtree_tabs_open_on_console_startup = 0
- "au VimEnter * NERDTreeFind
- " Запустить make вызывается нажатием F5
- set makeprg=cd\ build\ &&\ make\ debug
- imap <F5> <ESC>:wa<CR>:make<CR>
- nmap <F5> :wa<CR>:make<CR>
- let g:copened = 0
- function! CToggle()
- if g:copened
- cclose
- let g:copened = 0
- else
- copen 10
- let g:copened = 1
- endif
- endfunction
- "imap <esc>:NERDTreeToggle<cr> <ESC>:cclose<CR>
- "nmap :NERDTreeToggle<cr> :cclose<CR>
- imap <f8> <ESC>:call CToggle()<CR>
- nmap <f8> :call CToggle()<CR>
- " Перейти к следующей ошибке
- imap <F6> <ESC>:cnext<CR>
- nmap <F6> :cnext<CR>
- " Перейти к предыдущей ошибке
- "imap <F6> <ESC>:cprev<CR>
- "nmap <F6> :cprev<CR>
- map <A-q> :q!<CR>
- map <A-w> :w!<CR>
- map <C-d> :q!<CR>
- map <C-w> :w!<CR>
- " Uncomment the following to have Vim jump to the last position when
- " reopening a file
- if has("autocmd")
- au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
- \| exe "normal g'\"" | endif
- endif
- "set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
- set statusline=%<%F%h%m%r%h%w%y\ %{&ff}\ \[%{strftime(\"%Y-%m-%d\ %H:%M:%S\")}\]\ enc:%{&enc}\ ascii:%b%=\ %c%V(%o)\ %l\/%L\ %P
- " Disabled due to high CPU load
- "hi CursorLine ctermfg=white cterm=bold gui=bold
- "au InsertEnter * set cursorline
- "au InsertLeave * set nocursorline
- nmap <F3> <C-v>
- vmap <F3> y
- nmap <F4> V
- vmap <F4> y
- "map <F7> [I:let nr = input("Which one: ")<Bar>exe "normal " . nr ."[\t"<CR>
- map <F10> :call DecorationsToggle()<CR>
- let g:decorationsEnabled = 1
- function! DecorationsToggle()
- if g:decorationsEnabled
- set nonumber
- set nolist
- set notextauto
- set textwidth=0
- set colorcolumn=0
- let g:decorationsEnabled = 0
- else
- set number
- set list
- set textwidth=80
- set colorcolumn=80
- set textauto
- let g:decorationsEnabled = 1
- endif
- endfunction
- " syntax/php.vim
- let php_sql_query=1
- let php_folding=0
- let php_special_functions=1
- let php_htmlInStrings=1
- let php_parent_error_close=1
- " проверка скобок
- set showmatch
- set matchtime=1
- " Disable matchparen.vim due to high CPU load
- "let g:loaded_matchparen = 0
- function ToggleMatchParen()
- if exists("g:loaded_matchparen") && g:loaded_matchparen == 1
- windo 3match none
- unlet! g:loaded_matchparen
- au! matchparen
- else
- unlet! g:loaded_matchparen
- runtime plugin/matchparen.vim
- windo doau CursorMoved
- endif
- endfunction
- map <F9> :call ToggleMatchParen()<CR>
- " хранить резервные копии файлов ...
- set backup
- " ... в отдельном каталоге
- "set backupdir=~/.vim/backup/
- function! BackupDir()
- " определим каталог для сохранения резервной копии
- let l:backupdir=$HOME.'/.vim/backup/'.
- \substitute(expand('%:p:h'), '^'.$HOME, '~', '')
- " если каталог не существует, создадим его рекурсивно
- if !isdirectory(l:backupdir)
- call mkdir(l:backupdir, 'p', 0700)
- endif
- " переопределим каталог для резервных копий
- let &backupdir=l:backupdir
- " переопределим расширение файла резервной копии
- let &backupext=strftime('~%Y-%m-%d~')
- endfunction
- autocmd! bufwritepre * call BackupDir()
- set tags=./tags;/
- "execute pathogen#infect('bundle/{}', '/etc/vim/bundle/{}')
- let g:rust_recommended_style = 0
- au BufNewFile,BufRead *.goT set filetype=go
|