1
0
Files
Dotfiles/vimrc

109 lines
2.4 KiB
VimL

" 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 <tab>
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 <C-h> <C-w>h
map <C-j> <C-w>j
map <C-k> <C-w>k
map <C-l> <C-w>l
nnoremap <space> za
nmap <F5> :w<CR>:!clear;python3 %<CR>
nmap <F6> :!%:p<CR>
nmap <F7> :NERDTreeToggle<CR>
nmap <F8> :TagbarToggle<CR>
" 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