" Plugins call plug#begin() " Plugins listed below Plug 'morhetz/gruvbox' Plug 'lilydjwg/colorizer' call plug#end() " Call after plugin is loaded autocmd vimenter * ++nested colorscheme gruvbox set nocompatible " This fixes the problem where arrow keys do not function properly on some systems. let mapleader=' ' " Use space for leader key " General visual look of Vim set number set ruler set noerrorbells set laststatus=2 set noshowmode " Don't show mode in bottom status line let &fillchars ..= ',eob: ' " Hide tildes at EOF set splitbelow splitright set cursorline " Highlight the active cursor line set termguicolors " Clipboard set clipboard=unnamedplus " Text searching options set incsearch set ignorecase set smartcase set showmatch " Syntax and formatting syntax on set encoding=utf-8 set hidden " Tabs and indenting set smartindent set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab set noshiftround set scrolloff=3 " Command line completion options set showcmd set wildmenu filetype plugin on set omnifunc=syntaxcomplete#Complete set completeopt=menuone,noselect " Don't autoselect the completion " Setup undo history if !isdirectory($HOME."/.vim") call mkdir($HOME."/.vim", "", 0770) endif if !isdirectory($HOME."/.vim/undo-dir") call mkdir($HOME."/.vim/undo-dir", "", 0700) endif set undodir=~/.vim/undo-dir set undofile " Colors set background=dark hi Normal guibg=NONE ctermbg=NONE " Set background transparent " Setup terminal with gruvbox dark let g:terminal_ansi_colors = [ \ '#282828', '#cc241d', \ '#98971a', '#d79921', \ '#458588', '#b16286', \ '#689d6a', '#a89984', \ '#928374', '#fb4934', \ '#b8bb26', '#fabd2f', \ '#83a598', '#d3869b', \ '#8ec07c', '#ebdbb2', \] " Setup netrw let g:netrw_banner = 0 let g:netrw_liststyle = 3 let g:netrw_browse_split = 3 let g:netrw_altv = 1 let g:netrw_winsize = 25 " Setup custom statusline function! GitBranch() return system("git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'") endfunction function! StatuslineGit() let l:branchname = GitBranch() return strlen(l:branchname) > 0?' '.l:branchname.' ':'' endfunction function! StatuslineMode() let l:mode=mode() if l:mode==#"n" return "Normal" elseif l:mode==#"v" return "Visual" elseif l:mode==#"V" return "Visual line" elseif l:mode==#"\" return "Visual block" elseif l:mode==#"i" return "Insert" elseif l:mode==#"R" return "Replace" elseif l:mode==#"s" return "Select" elseif l:mode==#"t" return "Terminal" elseif l:mode==#"c" return "Enter command" elseif l:mode==#"!" return "Shell" endif endfunction set statusline= set statusline+=%#PmenuSel# set statusline+=%#DiffAdd# set statusline+=%{StatuslineMode()} set statusline+=%{StatuslineGit()} set statusline+=\ %F set statusline+=\ %r set statusline+=%m set statusline+=%#CursorColumn# set statusline+=%= set statusline+=\ %y\ set statusline+=%#DiffAdd# set statusline+=\ %{&fileencoding?&fileencoding:&encoding} set statusline+=\[%{&fileformat}\] set statusline+=\ %p%% set statusline+=\ %l:%c set statusline+=\