set encoding=utf-8 " Use UTF-8 set showmatch " Show matching brackets set ignorecase " Do case insensitive matching set incsearch " Show partial matches for a search phrase set number " Show numbers set relativenumber " Show relative numbersi set undolevels=999 " Lots of these set history=1000 " More history set hlsearch " Highlight Search set noexpandtab " Do not expand tab into spaces (change to expandtab to use spaces) set tabstop=4 " Tab size set shiftwidth=4 " Indentation size set softtabstop=4 " Tabs/Spaces interrop set tabpagemax=50 " More tabs set autoindent " Enable autoindent set ruler " Show cursor position set cursorline " Highlight cursor line set backspace=indent,eol,start " Delete everything set laststatus=2 " Always show status line set wildmode=longest,list,full " Enable autocompletion set splitbelow splitright " Split in more natural way set formatoptions+=j " Delete comment character when joining commented lines set autoread " Reload files on change set mouse=a " Enable mouse mode (won't have any effect on TTY) syntax enable " Turn on syntax highlighting " Non TTY Settings (Uncomment if you are on full graphical environment) set encoding=utf-8 " Use UTF-8, not ASCII "set termguicolors " Use true colors (256) " XDG Support " Avoid using this with root, sudo causes issues with this if empty($MYVIMRC) | let $MYVIMRC = expand(':p') | endif if empty($XDG_CACHE_HOME) | let $XDG_CACHE_HOME = $HOME."/.cache" | endif if empty($XDG_CONFIG_HOME) | let $XDG_CONFIG_HOME = $HOME."/.config" | endif if empty($XDG_DATA_HOME) | let $XDG_CONFIG_HOME = $HOME."/.local/share" | endif set runtimepath^=$XDG_CONFIG_HOME/vim set runtimepath+=$XDG_DATA_HOME/vim set runtimepath+=$XDG_CONFIG_HOME/vim/after set packpath^=$XDG_DATA_HOME/vim,$XDG_CONFIG_HOME/vim set packpath+=$XDG_CONFIG_HOME/vim/after,$XDG_DATA_HOME/vim/after let g:netrw_home = $XDG_DATA_HOME."/vim" call mkdir($XDG_DATA_HOME."/vim/spell", 'p') set viewdir=$XDG_DATA_HOME/vim/view | call mkdir(&viewdir, 'p') set backupdir=$XDG_CACHE_HOME/vim/backup | call mkdir(&backupdir, 'p') set directory=$XDG_CACHE_HOME/vim/swap | call mkdir(&directory, 'p') set undodir=$XDG_CACHE_HOME/vim/undo | call mkdir(&undodir, 'p') " Have Vim jump to the last position when reopening a file if has("autocmd") au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" endif " Automatically deletes all trailing whitespace on save autocmd BufWritePre * %s/\s\+$//e " Perform shellcheck on files map s :!clear && shellcheck % " Remap splits navigation to just CTRL + hjkl nnoremap h nnoremap j nnoremap k nnoremap l " Make adjusing split sizes a bit more friendly noremap :vertical resize +3 noremap :vertical resize -3 noremap :resize +3 noremap :resize -3 " map "+y vnoremap "+p " Vundle filetype off " required set nocompatible " be iMproved, required "set rtp+=~/.local/share/vim/bundle/Vundle.vim "all vundle#begin('~/.local/share/vim/bundle') call plug#begin('~/.local/share/vim/plugged') Plug 'VundleVim/Vundle.vim' " Let vundle manage itself Plug 'airblade/vim-gitgutter' " Shows Git diff Plug 'joshdick/onedark.vim' " OneDark theme Plug 'vim-airline/vim-airline' " AirLine statusline Plug 'vim-airline/vim-airline-themes' " AirLine statusline themes Plug 'vim-syntastic/syntastic' " Syntax checking Plug 'vim-python/python-syntax' " Python highlighting "call vundle#end() call plug#end() filetype plugin indent on " User interface / Theme colorscheme onedark "autocmd ColorScheme * highlight! Normal ctermbg=NONE guibg=NONE " Terminal background set guioptions-=m " remove menubar set guioptions-=T " remove toolbar set guioptions-=r " remove right-hand scrollbar set guioptions-=L " remove left-hand scrollbar let g:python_highlight_all = 1 " Enable pyhton-syntax support " Airline let g:airline_theme='onedark' let g:airline#extensions#tabline#enabled = 1 let g:airline#tabline#formatter = 'unique_tail' let g:airline_symbols_ascii = 1 " Enable ASCII only for TTY let g:airline_left_sep = "\uE0B0" " Change to ASCII symbol on TTY (>) let g:airline_right_sep = "\uE0B2" " Change to ASCII symbol on TTY (<) " Syntastic set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%* let g:syntastic_alays_populate_loc_list = 1 let g:syntastic_auto_loc_list = 0 let g:syntastic_check_on_open = 1 let g:syntastic_check_on_wq = 0 let g:syntastic_python_checkers = ['flake8'] map c :SyntasticCheck map z :Errors