Created
March 23, 2021 10:19
-
-
Save ghost355/95ae31d114368b6c6ccc0fe1c842da4d to your computer and use it in GitHub Desktop.
VIMRC ets-labs / python-vimrc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" | |
" __ _ _ _ __ ___ _ __ ___ " | |
" \ \ / / | '_ ` _ \| '__/ __| " | |
" \ V /| | | | | | | | | (__ " | |
" \_/ |_|_| |_| |_|_| \___| " | |
" " | |
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" | |
let $vimhome=fnamemodify(resolve(expand("~/.vimrc")), ':p:h') | |
let $vundle=$vimhome."/bundle/Vundle.vim" | |
" Be iMproved | |
set nocompatible | |
"===================================================== | |
"" Vundle settings | |
"===================================================== | |
filetype off | |
set rtp+=$vundle | |
call vundle#begin() | |
Plugin 'VundleVim/Vundle.vim' " let Vundle manage Vundle, required | |
"-------------------=== My plugins ===------------- | |
Plugin 'lyokha/vim-xkbswitch' " Russian support | |
"-------------------=== Code/Project navigation ===------------- | |
Plugin 'scrooloose/nerdtree' " Project and file navigation | |
Plugin 'majutsushi/tagbar' " Class/module browser | |
Plugin 'kien/ctrlp.vim' " Fast transitions on project files | |
"-------------------=== Other ===------------------------------- | |
Plugin 'bling/vim-airline' " Lean & mean status/tabline for vim | |
Plugin 'vim-airline/vim-airline-themes' " Themes for airline | |
Plugin 'Lokaltog/powerline' " Powerline fonts plugin | |
Plugin 'fisadev/FixedTaskList.vim' " Pending tasks list | |
Plugin 'rosenfeld/conque-term' " Consoles as buffers | |
Plugin 'tpope/vim-surround' " Parentheses, brackets, quotes, XML tags, and more | |
Plugin 'flazz/vim-colorschemes' " Colorschemes | |
"-------------------=== Snippets support ===-------------------- | |
Plugin 'garbas/vim-snipmate' " Snippets manager | |
Plugin 'MarcWeber/vim-addon-mw-utils' " dependencies #1 | |
Plugin 'tomtom/tlib_vim' " dependencies #2 | |
Plugin 'honza/vim-snippets' " snippets repo | |
"-------------------=== Languages support ===------------------- | |
Plugin 'tpope/vim-commentary' " Comment stuff out | |
Plugin 'mitsuhiko/vim-sparkup' " Sparkup(XML/jinja/htlm-django/etc.) support | |
Plugin 'Rykka/riv.vim' " ReStructuredText plugin | |
Plugin 'Valloric/YouCompleteMe' " Autocomplete plugin | |
"-------------------=== Python ===----------------------------- | |
Plugin 'klen/python-mode' " Python mode (docs, refactor, lints...) | |
Plugin 'scrooloose/syntastic' " Syntax checking plugin for Vim | |
call vundle#end() " required | |
filetype on | |
filetype plugin on | |
filetype plugin indent on | |
"===================================================== | |
"" General settings | |
"===================================================== | |
syntax enable " syntax highlight | |
set t_Co=256 " set 256 colors | |
colorscheme wombat256mod " set color scheme | |
set number relativenumber "А это гибридный вариант нумерования строк | |
set ruler | |
set ttyfast " terminal acceleration | |
set tabstop=4 " 4 whitespaces for tabs visual presentation | |
set shiftwidth=4 " shift lines by 4 spaces | |
set smarttab " set tabs for a shifttabs logic | |
set expandtab " expand tabs into spaces | |
set autoindent " indent when moving to the next line while writing code | |
set cursorline " shows line under the cursor's line | |
set showmatch " shows matching part of bracket pairs (), [], {} | |
set enc=utf-8 " utf-8 by default | |
set nobackup " no backup files | |
set nowritebackup " only in case you don't want a backup file while editing | |
set noswapfile " no swap files | |
let mapleader=" " " set Space as leaderkey | |
set backspace=indent,eol,start " backspace removes all (indents, EOLs, start) What is start? | |
set scrolloff=10 " let 10 lines before/after cursor during scroll | |
set clipboard=unnamed " use system clipboard | |
set exrc " enable usage of additional .vimrc files from working directory | |
set secure " prohibit .vimrc files to execute shell, create files, etc... | |
" Additional mappings for Esc (useful for MacBook with touch bar) | |
inoremap jj <Esc> | |
inoremap jk <Esc> | |
inoremap оо <Esc> | |
"===================================================== | |
"" Tabs / Buffers settings | |
"===================================================== | |
tab sball | |
set switchbuf=useopen | |
set laststatus=2 | |
nmap <F9> :bprev<CR> | |
nmap <F10> :bnext<CR> | |
nmap <silent> <leader>q :SyntasticCheck # <CR> :bp <BAR> bd #<CR> | |
"" Search settings | |
"===================================================== | |
set incsearch " incremental search | |
set hlsearch " highlight search results | |
"===================================================== | |
"" AirLine settings | |
"===================================================== | |
let g:airline_theme='badwolf' | |
let g:airline#extensions#tabline#enabled=1 | |
let g:airline#extensions#tabline#formatter='unique_tail' | |
let g:airline_powerline_fonts = 1 "Включить поддержку Powerline шрифтов | |
"let g:airline#extensions#keymap#enabled = 0 "Не показывать текущий маппинг | |
"let g:airline_section_z = "\ue0a1:%l/%L Col:%c" "Кастомная графа положения курсора | |
let g:Powerline_symbols='unicode' "Поддержка unicode | |
let g:airline#extensions#xkblayout#enabled = 0 "Про это позже расскажу | |
set guifont=Fira\ Code\ Light\ Nerd\ Font\ Complete:h20 "Это light версия | |
set guioptions= "Отключаем панели прокрутки в GUI | |
if has('gui_running') | |
set macligatures "Включает поддержку лигатур в MacVim | |
:endif | |
"===================================================== | |
"" Xkblayout settings | |
"===================================================== | |
let g:XkbSwitchEnabled = 1 "Включаем поддержку русской раскладки | |
let g:XkbSwitchNLayout = 'us' | |
let g:XkbSwitchAssistNKeymap = 1 " for commands r and f | |
let g:XkbSwitchAssistSKeymap = 1 " for search lines | |
set keymap=russian-jcukenwin | |
set iminsert=0 | |
set imsearch=0 | |
"===================================================== | |
"" TagBar settings | |
"===================================================== | |
let g:tagbar_autofocus=0 | |
let g:tagbar_width=42 | |
autocmd BufEnter *.py :call tagbar#autoopen(0) | |
"===================================================== | |
"" NERDTree settings | |
"===================================================== | |
let NERDTreeIgnore=['\.pyc$', '\.pyo$', '__pycache__$'] " Ignore files in NERDTree | |
let NERDTreeWinSize=40 | |
autocmd VimEnter * if !argc() | NERDTree | endif " Load NERDTree only if vim is run without arguments | |
nmap " :NERDTreeToggle<CR> | |
"===================================================== | |
"" SnipMate settings | |
"===================================================== | |
let g:snippets_dir='~/.vim/vim-snippets/snippets' | |
let g:snipMate = {'snippet_version' : 1} | |
"===================================================== | |
"" Riv.vim settings | |
"===================================================== | |
let g:riv_disable_folding=1 | |
"===================================================== | |
"" Python settings | |
"===================================================== | |
" python executables for different plugins | |
let g:pymode_python='python3' | |
let g:syntastic_python_python_exec='python3' | |
" rope | |
let g:pymode_rope=0 | |
let g:pymode_rope_completion=0 | |
let g:pymode_rope_complete_on_dot=0 | |
let g:pymode_rope_auto_project=0 | |
let g:pymode_rope_enable_autoimport=0 | |
let g:pymode_rope_autoimport_generate=0 | |
let g:pymode_rope_guess_project=0 | |
" documentation | |
let g:pymode_doc=0 | |
let g:pymode_doc_bind='K' | |
" lints | |
let g:pymode_lint=0 | |
" virtualenv | |
let g:pymode_virtualenv=1 | |
" breakpoints | |
let g:pymode_breakpoint=1 | |
let g:pymode_breakpoint_key='<leader>b' | |
" syntax highlight | |
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 | |
" highlight 'long' lines (>= 80 symbols) in python files | |
augroup vimrc_autocmds | |
autocmd! | |
autocmd FileType python,rst,c,cpp highlight Excess ctermbg=DarkGrey guibg=Black | |
autocmd FileType python,rst,c,cpp match Excess /\%81v.*/ | |
autocmd FileType python,rst,c,cpp set nowrap | |
autocmd FileType python,rst,c,cpp set colorcolumn=80 | |
augroup END | |
" code folding | |
let g:pymode_folding=0 | |
" pep8 indents | |
let g:pymode_indent=1 | |
" code running | |
let g:pymode_run=1 | |
let g:pymode_run_bind='<F5>' | |
" syntastic | |
let g:syntastic_always_populate_loc_list=1 | |
let g:syntastic_auto_loc_list=1 | |
let g:syntastic_enable_signs=1 | |
let g:syntastic_check_on_wq=0 | |
let g:syntastic_aggregate_errors=1 | |
let g:syntastic_loc_list_height=5 | |
let g:syntastic_error_symbol='X' | |
let g:syntastic_style_error_symbol='X' | |
let g:syntastic_warning_symbol='x' | |
let g:syntastic_style_warning_symbol='x' | |
let g:syntastic_python_checkers=['flake8', 'pydocstyle', 'python3'] | |
" YouCompleteMe | |
set completeopt-=preview | |
let g:ycm_global_ycm_extra_conf='~/.vim/ycm_extra_conf.py' | |
let g:ycm_confirm_extra_conf=0 | |
nmap <leader>g :YcmCompleter GoTo<CR> | |
nmap <leader>d :YcmCompleter GoToDefinition<CR> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment