" For platform specific settings let hostname = substitute(system('hostname'), '\n', '', '') " Plugin management set nocompatible filetype off set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' " Status Line Plugin 'vim-airline/vim-airline' " Explorer Plugin 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " File search Plugin 'ctrlpvim/ctrlp.vim' " Class explorer Plugin 'majutsushi/tagbar', { 'on': 'TagbarToggle' } " Code completion using Plugin 'ervandew/supertab' if hostname == "localhost" " Python IDE-like Plugin 'python-mode/python-mode', { 'for': 'python', 'branch': 'develop' } else " Autocomplete for python Plugin 'davidhalter/jedi-vim' " Asynchronous syntax check Plugin 'dense-analysis/ale' " Intelligent folding Plugin 'tmhedberg/SimpylFold' endif " Git management Plugin 'tpope/vim-fugitive' " Color schemes Plugin 'morhetz/gruvbox' call vundle#end() filetype plugin indent on " Syntax syntax enable let python_highlight_all=1 set number set cursorline set showmatch set laststatus=2 " Always display statusline set background=dark let g:gruvbox_contrast_dark='hard' if filereadable( expand("$HOME/.vim/bundle/gruvbox/colors/gruvbox.vim") ) colorscheme gruvbox endif " Indentation set tabstop=4 set softtabstop=4 set shiftwidth=0 " set textwidth=79 set autoindent set smarttab autocmd filetype python set expandtab au BufNewFile,BufRead *.js, *.html, *.css, *.json \ set tabstop=2 | \ set softtabstop=2 | \ set shiftwidth=2 " Display set list set list listchars=tab:\|·,trail:⋅,nbsp:⋅ " set nowrap set hlsearch set incsearch set foldlevel=2 set colorcolumn=80 " Behaviour set hidden " Keep previous buffer when opening a new file set wildmenu " Sexy autocomplete " Mappings let mapleader="," map h map j map k map l nnoremap za nmap :w:!clear;python3 % nmap :!%:p nmap :NERDTreeToggle nmap :TagbarToggle " Plugin config let g:SimpylFold_docstring_preview=1 let g:airline#extensions#tabline#enabled=1 if hostname == "localhost" let g:pymode_rope=1 let g:pymode_folding=1 else let g:airline_powerline_fonts=1 " Plugin Ale packloadall silent! helptags ALL let g:ale_fixers = { \ '*': ['remove_trailing_lines', 'trim_whitespace'], \ 'javascript': ['eslint'], \ 'python': ['add_blank_lines_for_python_control_statements', 'autopep8', 'isort'] \} endif