" ============================================================================
" Vi Configuration
" ============================================================================
" General
" ----------------------------------------------------------------------------
set nocompatible
set encoding=utf-8
set hidden
set history=1000
set clipboard=unnamedplus
set splitright
set splitbelow

" ----------------------------------------------------------------------------
" UI
" ----------------------------------------------------------------------------
set number
set relativenumber
set wildmenu
set showcmd

" ----------------------------------------------------------------------------
" Transparent UI
" ----------------------------------------------------------------------------
augroup VimTransparent
  autocmd!
  autocmd ColorScheme * highlight Normal ctermbg=NONE guibg=NONE
        \ | highlight NonText ctermbg=NONE guibg=NONE
        \ | highlight LineNr ctermbg=NONE guibg=NONE
        \ | highlight SignColumn ctermbg=NONE guibg=NONE
        \ | highlight EndOfBuffer ctermbg=NONE guibg=NONE
augroup END

" ----------------------------------------------------------------------------
" Status Line
" ----------------------------------------------------------------------------
set laststatus=2
highlight EviStatus cterm=NONE ctermfg=White ctermbg=236
set statusline=%#EviStatus#%f\ %m%r\ %=%{&filetype}\ \ %l:%c\ %p%%

" ----------------------------------------------------------------------------
" Editing
" ----------------------------------------------------------------------------
set tabstop=4
set shiftwidth=4
set expandtab
set smartindent
set nowrap
set incsearch
set hlsearch
set ignorecase
set smartcase
set completeopt=menu,menuone,noselect

" ----------------------------------------------------------------------------
" File Types
" ----------------------------------------------------------------------------
syntax on
filetype plugin indent on

" ----------------------------------------------------------------------------
" Search
" ----------------------------------------------------------------------------
nnoremap <Esc><Esc> :nohlsearch<CR>
nnoremap n nzzzv
nnoremap N Nzzzv

" ----------------------------------------------------------------------------
" Window Navigation
" ----------------------------------------------------------------------------
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
nnoremap <C-x> <C-w>q

" ----------------------------------------------------------------------------
" Netrw / File Tree
" ----------------------------------------------------------------------------
let g:netrw_banner = 0
let g:netrw_liststyle = 3
let g:netrw_browse_split = 0
let g:netrw_altv = 1
let g:netrw_winsize = 33
let g:netrw_keepdir = 0
nnoremap <C-e> :Lexplore<CR>
