Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "====================================
- " =
- " ПЛАГИНЫ И ИХ НАСТРОЙКИ =
- " =
- "====================================
- "====================================
- " Инициализация менеджера плагинов =
- "====================================
- call plug#begin('~/.vim/plugged')
- "====================================
- "************************************
- " ОБЩИЕ *
- "************************************
- "====================================
- " Навигация по файлам и каталогам =
- "====================================
- Plug 'scrooloose/nerdtree'
- " Открыть/закрыть панель NERDTree
- map <F12> :NERDTreeToggle<CR>
- "Закрывать vim если NerdTree единственное открытое окно
- autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
- " Отображать скрытые файлы
- let NERDTreeShowHidden=1
- "====================================
- "====================================
- " Навигация по буферам и файлам =
- "====================================
- Plug 'Shougo/unite.vim'
- " Отобразить список буферов
- nnoremap <F10> :Unite buffer<CR>
- " Перемещение между буферами
- nmap <F8> :bprev<CR>
- nmap <F9> :bnext<CR>
- " Закрыть текущий буфер
- map <C-q> :bd<CR>
- "====================================
- " Миникарта =
- "====================================
- Plug 'severin-lemaignan/vim-minimap'
- let g:minimap_highlight='Visual'
- "let g:minimap_show='<leader>ms'
- "let g:minimap_update='<leader>mu'
- "let g:minimap_close='<leader>gc'
- "let g:minimap_toggle='<leader>gt'
- nnoremap <F2> :MinimapToggle<CR>
- "====================================
- "====================================
- " Дерево изменений =
- "====================================
- Plug 'mbbill/undotree'
- nnoremap <F4> :UndotreeToggle<cr>
- if has("persistent_undo")
- set undodir=~/.vim/undodir/
- set undofile
- endif
- "====================================
- "====================================
- " Визуальное отображение отступов =
- "====================================
- Plug 'Yggdroot/indentLine'
- " let g:indentLine_setColors = 0
- " set listchars=tab:›\ ,trail:•,extends:#,nbsp:.
- "====================================
- "====================================
- " Стартовый экран =
- "====================================
- Plug 'mhinz/vim-startify'
- "====================================
- "====================================
- " Управление парными элементами =
- "====================================
- Plug 'jiangmiao/auto-pairs'
- let g:AutoPairsMapCR = 0
- let g:AutoPairsMapReturn = 0
- let g:AutoPairsMapSpace = 0
- "====================================
- "====================================
- " Установка/замена обрамляющих =
- " символов и тэгов =
- "====================================
- Plug 'tpope/vim-surround'
- "====================================
- "====================================
- " Подсветка парных элементов =
- "====================================
- Plug 'kien/rainbow_parentheses.vim'
- "====================================
- "====================================
- " Многострочное редактирование =
- "====================================
- Plug 'terryma/vim-multiple-cursors'
- " set selection=inclusive
- "
- " " Отключение сочетание клавиш по умолчанию
- " let g:multi_cursor_use_default_mapping=0
- "
- " " Сочетания клавиш
- " let g:multi_cursor_next_key='<C-n>'
- " let g:multi_cursor_prev_key='<C-p>'
- " let g:multi_cursor_skip_key='<C-x>'
- " let g:multi_cursor_quit_key='<Esc>'
- "
- " " Default highlighting (see help :highlight and help :highlight-link)
- " highlight multiple_cursors_cursor term=reverse cterm=reverse gui=reverse
- " highlight link multiple_cursors_visual Visual
- "====================================
- "====================================
- " Терминал в буфере =
- "====================================
- " Plug 'rosenfeld/conque-term'
- "
- " " Открыть терминал по F6
- " nnoremap <F6> :ConqueTermSplit /bin/bash<CR>
- " let g:ConqueTerm_StartMessages = 0
- " let g:ConqueTerm_CloseOnEnd = 0
- "====================================
- "====================================
- " Строка состояния =
- "====================================
- Plug 'vim-airline/vim-airline'
- Plug 'vim-airline/vim-airline-themes'
- "====================================
- "====================================
- " Цветовая схема =
- "====================================
- Plug 'chriskempson/base16-vim'
- "====================================
- "====================================
- " Иконки =
- "====================================
- Plug 'ryanoasis/vim-devicons'
- "====================================
- "************************************
- " СИСТЕМЫ КОНТРОЛЯ ВЕРСИЙ *
- "************************************
- "====================================
- " Поддержка Git в NerdTree =
- "====================================
- " Plug 'Xuyuanp/nerdtree-git-plugin'
- "====================================
- "====================================
- " Поддержка Git в VIM =
- "====================================
- " Plug 'jreybert/vimagit'
- "====================================
- "************************************
- " ПРОГРАММИРОВАНИЕ *
- "************************************
- " let ext = expand("%:e") " получаем расширение файла
- "====================================
- " Цветовая индикация строк, =
- " привышающих длинну в 150 символов,=
- " для файлов py,sh bat,c,cpp. =
- "====================================
- " set colorcolumn=150
- augroup colorcolumn_size
- autocmd!
- autocmd FileType python,sh,bat,c,cpp highlight Excess ctermbg=DarkGrey guibg=Black
- autocmd FileType python,sh,bat,c,cpp match Excess /\%81v.*/
- autocmd FileType python,sh,bat,c,cpp set nowrap
- autocmd FileType python,sh,bat,c,cpp set colorcolumn=150
- augroup END
- "====================================
- "====================================
- " Навигация по классам, функциям, =
- " переменным =
- "====================================
- Plug 'majutsushi/tagbar'
- " Открыть tagbar
- nnoremap <F3> :TagbarToggle<CR>
- "====================================
- "====================================
- " Комментарии =
- "====================================
- Plug 'scrooloose/nerdcommenter'
- " Добавлять пробел после комментариев
- let g:NERDSpaceDelims = 1
- " Выравнивать коментарии по левой стороне
- let g:NERDDefaultAlign = 'left'
- " Разрешить комментировать пустые строки
- let g:NERDCommentEmptyLines = 1
- " Обрезать конечные пробелы при раскомментировании
- let g:NERDTrimTrailingWhitespace = 1
- " Комментировать по Ctrl+c
- vmap <silent> <C-c> <Plug>NERDCommenterToggle
- nmap <silent> <C-c> <Plug>NERDCommenterToggle
- "====================================
- "====================================
- " Сниппеты =
- "====================================
- Plug 'SirVer/ultisnips'
- " Установить фрагмент
- let g:UltiSnipsExpandTrigger="<tab>"
- " Переключить на следующий фрагмент
- let g:UltiSnipsJumpForwardTrigger="<C-x>"
- " Переключить на предыдущий фрагмент
- let g:UltiSnipsJumpBackwardTrigger="<C-z>"
- " Разбивать окно по вертикали
- " let g:UltiSnipsEditSplit="vertical"
- "====================================
- "====================================
- " Репозитории сниппетов =
- " для различных =
- " языков программирования =
- "====================================
- Plug 'honza/vim-snippets'
- "====================================
- "====================================
- " Синтаксис =
- "====================================
- Plug 'vim-syntastic/syntastic'
- " рекомендуемые настройки для syntastic
- set statusline+=%#warningmsg#
- set statusline+=%{SyntasticStatuslineFlag()}
- set statusline+=%*
- let g:syntastic_always_populate_loc_list = 1
- let g:syntastic_auto_loc_list = 1
- let g:syntastic_check_on_open = 1
- let g:syntastic_check_on_wq = 0
- let g:syntastic_enable_signs = 1
- let g:syntastic_aggregate_errors = 1
- " F7 - проверка синтаксиса текущего файла
- noremap <F7> :w<CR>:SyntasticCheck<CR>
- "====================================
- "====================================
- " Автодополнение =
- "====================================
- " Автодополнение по <Ctrl+Space>
- inoremap <C-space> <C-x><C-o>
- "====================================
- "************************************
- " ЯЗЫКИ ПРОГРАММИРОВАНИЯ *
- "************************************
- "====================================
- " Python =
- "====================================
- " Поддержка Python в Vim
- Plug 'klen/python-mode'
- " Поддерживаемая версия python
- let g:pymode_python='python3'
- " Отключаем автокомплит по коду (у нас вместо него используется jedi-vim)
- let g:pymode_rope = 0
- let g:pymode_rope_completion = 0
- let g:pymode_rope_complete_on_dot = 0
- " Документация
- let g:pymode_doc = 0
- let g:pymode_doc_key = 'K'
- " Проверка кода
- let g:pymode_lint = 0
- " let g:pymode_lint_checker = "pep8"
- " let g:pymode_lint_ignore="E501,W601,C0110,E2"
- " Провека кода после сохранения
- let g:pymode_lint_write = 0
- " Поддержка virtualenv
- let g:pymode_virtualenv = 0
- " установка breakpoints
- let g:pymode_breakpoint = 1
- let g:pymode_breakpoint_key = '<leader>b'
- " Подстветка синтаксиса
- let g:pymode_syntax=1
- let g:pymode_syntax_slow_sync=1
- let g:pymode_syntax_all=1
- let g:pymode_syntax_print_as_function=g:pymode_syntax_all
- let g:pymode_syntax_highlight_async_await=g:pymode_syntax_all
- let g:pymode_syntax_highlight_equal_operator=g:pymode_syntax_all
- let g:pymode_syntax_highlight_stars_operator=g:pymode_syntax_all
- let g:pymode_syntax_highlight_self=g:pymode_syntax_all
- let g:pymode_syntax_indent_errors=g:pymode_syntax_all
- let g:pymode_syntax_string_formatting=g:pymode_syntax_all
- let g:pymode_syntax_space_errors=g:pymode_syntax_all
- let g:pymode_syntax_string_format=g:pymode_syntax_all
- let g:pymode_syntax_string_templates=g:pymode_syntax_all
- let g:pymode_syntax_doctests=g:pymode_syntax_all
- let g:pymode_syntax_builtin_objs=g:pymode_syntax_all
- let g:pymode_syntax_builtin_types=g:pymode_syntax_all
- let g:pymode_syntax_highlight_exceptions=g:pymode_syntax_all
- let g:pymode_syntax_docstrings=g:pymode_syntax_all
- " Отключить autofold по коду
- let g:pymode_folding = 0
- " Выполнение кода
- let g:pymode_run = 0
- "let g:pymode_run_bind='<F5>'
- "====================================
- "====================================
- " Автодополнение для Python =
- "====================================
- Plug 'davidhalter/jedi-vim'
- autocmd FileType python setlocal completeopt-=preview
- let g:jedi#use_splits_not_buffers = "right"
- let g:jedi#auto_close_doc = 1
- let g:jedi#show_call_signatures = 2
- "====================================
- " Форматирование кода =
- " и соответствие PEP8 =
- "====================================
- Plug 'Vimjas/vim-python-pep8-indent'
- let g:pymode_indent = 0
- Plug 'tmhedberg/SimpylFold'
- let g:SimpylFold_docstring_preview = 1
- "====================================
- "====================================
- " C/C++ =
- "====================================
- "====================================
- " Автодополнение для C/C++ =
- "====================================
- Plug 'Rip-Rip/clang_complete'
- " au FileType c,cpp,objc,objcpp call <SID>ClangCompleteInit()
- " Пути для поиска библиотек
- " let g:clang_library_path='/usr/lib/llvm-3.8/lib'
- let g:clang_library_path='/usr/lib/llvm-3.8/lib/libclang.so.1'
- " let g:clang_library_path='/usr/lib64/libclang.so.3.8'
- " Отображать отладочную информацию
- let g:clang_debug = 0
- " Не отображать окно описания
- set completeopt-=preview
- "====================================
- "====================================
- " Подсветка синтаксиса для C++ =
- "====================================
- Plug 'octol/vim-cpp-enhanced-highlight'
- let g:cpp_class_scope_highlight = 1
- let g:cpp_member_variable_highlight = 1
- let g:cpp_class_decl_highlight = 1
- let g:cpp_experimental_simple_template_highlight = 1
- let g:cpp_experimental_template_highlight = 1
- let g:cpp_concepts_highlight = 1
- let g:cpp_no_function_highlight = 1
- "====================================
- "====================================
- " Arduino =
- "====================================
- Plug 'stevearc/vim-arduino'
- " Документация
- " https://github.com/stevearc/vim-arduino/blob/master/doc/arduino.txt
- " my_file.ino [arduino:avr:uno] [arduino:usbtinyisp] (/dev/ttyACM0:9600)
- " function! MyStatusLine()
- " let port = arduino#GetPort()
- " let line = '%f [' . g:arduino_board . '] [' . g:arduino_programmer . ']'
- " if !empty(port)
- " let line = line . ' (' . port . ':' . g:arduino_serial_baud . ')'
- " endif
- " return line
- " endfunction
- " setl statusline=%!MyStatusLine()
- " Путь к исполняемому файлу arduino ide
- let g:arduino_cmd = '/home/vladimirse/Files/bin/arduino-1.8.5/arduino'
- " Путь к каталогу arduino ide
- let g:arduino_dir = '/home/vladimirse/Files/bin/arduino-1.8.5'
- " Запуск arduino в Xvfb (требуется установка Xvfb)
- " let g:arduino_run_headless = 0
- " Отображать процесс загрузки скетча
- let g:arduino_args = '--verbose-build --verbose-upload'
- " Тип палаты по умолчанию (:ArduinoChooseBoard)
- "let g:arduino_board = 'arduino:avr:uno'
- let g:arduino_board = 'arduino:avr:nano:cpu=atmega328'
- " Программатор (:ArduinoChooseProgrammer)
- let g:arduino_programmer = 'arduino:usbtinyisp'
- " Команда для подключения к последовательному порту
- " let g:arduino_serial_cmd = 'screen {port} {baud}'
- " let g:arduino_serial_cmd = 'picocom /dev/ttyUSB0 -b 9600 -l'
- " Скорость порта
- let g:arduino_serial_baud = 9600
- " Автоматически устанавливать скорость порта, выполнив 'Serial.begin()'
- " let g:arduino_auto_baud = 1
- " Порт по умолчанию (:ArduinoChoosePort)
- let g:arduino_serial_port = '/dev/ttyUSB0'
- " Шаблолны для портов
- " let g:arduino_serial_port_globs = ['/dev/ttyACM*',
- " \'/dev/ttyUSB*',
- " \'/dev/tty.usbmodem*',
- " \'/dev/tty.usbserial*']
- " Загрузка счетча
- nnoremap <C-u> <ESC>:let @a=ArduinoUpload<CR>
- "====================================
- "====================================
- " Инициализация менеджера плагинов =
- "====================================
- call plug#end()
- "====================================
- "====================================
- " Сборка и выполнение кода =
- "====================================
- augroup CBuild
- autocmd!
- " C
- autocmd filetype c nnoremap <F5> <ESC>:!gcc -o %:p:r %<CR>
- autocmd filetype c nnoremap <F6> <ESC>:!gcc -o %:p:r %<CR>:!%:p:r<CR>
- " C++
- autocmd filetype cpp nnoremap <F5> <ESC>:!g++ -o %:p:r %<CR>
- autocmd filetype cpp nnoremap <F6> <ESC>:!g++ -o %:p:r %<CR>:!%:p:r<CR>
- " Python
- autocmd filetype python nnoremap <F5> <ESC>:w<CR>:silent !gnome-terminal -x /bin/bash -c "python3 %:p; read -n1"<CR>
- " Bash
- " autocmd filetype sh nnoremap <F5> <ESC>:w<CR>:silent !gnome-terminal -x /bin/bash -c "python3 %:p; read -n1"<CR>
- augroup END
- "====================================
- "====================================
- " Основные параметры конфигурации =
- "====================================
- " Автоматически перечитывать .vimrc после сохранения
- autocmd! bufwritepost .vimrc source %
- " Использовать системный буфер обмена
- set clipboard=unnamed
- " Разрешить использование дополнительных файлов .vimrc из рабочего каталога
- set exrc
- " Запретить из .vimrc файлов запускать оболочку, создавать файлы и т. д.
- set secure
- " Кодировка файлов по умолчанию
- set encoding=utf-8
- " Список кодировок для автоопределения
- set fileencodings=utf-8,cp1251,koi8-r,cp866
- " Поддержка кириллици
- " set keymap=russian-jcukenwin
- " set iminsert=0
- " set imsearch=0
- " Поддержка терминала 256 цветов
- let base16colorspace=256
- set t_Co=256
- " Подсветка синтаксиса
- syntax on
- " Настройка графического интерфейса
- "====================================
- if has('gui_running')
- " set guioptions-=b
- set guioptions-=T " убрать панель инструментов
- set guioptions-=m " убрать меню
- set guioptions-=L " убрать полосу прокрутки слева
- set guioptions+=r " отображать полосу прокрутки справа
- set columns=120
- set lines=50
- set linespace=0
- set background=dark
- colorscheme base16-default-dark
- if has('gui win32')
- set guifont=Consolas:h10:cANSI
- else
- set guifont=DroidSansMono\ Nerd\ Font\ 10
- endif
- else
- colorscheme xoria256 " цветовая схема
- let g:airline_theme='distinguished' " тема оформления строки состояния
- endif
- "====================================
- " Нумирация строк
- set number
- " Выделять текущую строку
- set cursorline
- " Автоматическое перечитываение измененного файла
- set autoread
- " Переходить в каталог открытого файла
- set autochdir
- " Отключить бэкапы и своп-файлы
- "====================================
- set nobackup " не делать бекапы
- set noundofile " не делать бекапы нового формата
- set nowritebackup " не делать бекапы редактируемого файла
- set noswapfile " не создавать фалов подкачки
- "====================================
- " Использовать системный буфер обмена
- set clipboard=unnamedplus
- " Количество команд хранящихся в истории
- set history=50
- " Для медленных терминалов
- set ttyfast
- " Параметры отступов и табуляции
- " Количество пробелов, которыми символ табуляции отображается в тексте (как существующие, так и новые)
- set tabstop=4
- " Ширина отступов добавляемая командами >> и <<
- set shiftwidth=4
- " Позволяет удалять отступ в начале строки целеком, а не по пробелам
- set smarttab
- " В режиме вставки заменяет табуляцию на соответствующее количество пробелов
- set expandtab
- " Умные отступы
- set autoindent
- " Параметры поиска по файлу
- "====================================
- "
- " Подсвечивать результаты поиска
- set hlsearch
- " Инкрементальный поиск (поиск в процессе набора)
- set incsearch
- " Игнорировать регистр букв при поиске
- set ignorecase
- set smartcase
- " Создание нового окна снизу
- set splitbelow
- "====================================
- "====================================
- " Общие сочетания клавиш =
- "====================================
- " Бастрое сохранение Ctrl+s
- "====================================
- noremap <C-S> :update<CR>
- vnoremap <C-S> <C-C>:update<CR>
- inoremap <C-S> <C-O>:update<CR>
- "====================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement