" ##############################################################################
" ##################    GLOBAL    ##############################################
" ##############################################################################
se number
se relativenumber
syntax on
se background=dark
colors wildcharm
se smartindent
se autoindent
se incsearch
se hlsearch
se ruler
se showcmd
se modeline
se modelines=5
se textwidth=80
se cc=80
se laststatus=2
se statusline=%F%m%r%h%w%<\ %{&ff}\ %Y\ [0x\%02.2B]\ %=l/%L,%v\ %p%%
se cursorline
set mouse=a
set ttymouse=xterm2
set foldcolumn=5
" netrw settings
let g:netrw_banner = 0 " hide banner
let g:netrw_liststye = 3 " tree-style listing
let g:netrw_browse_split = 4 " open file in previous window
let g:netrw_liststyle = 3
" ##############################################################################
" ##################    LEADER    ##############################################
" ##############################################################################
let mapleader = "\<Space>"
" ##############################################################################
" ##################    HILIGHTS    ############################################
" ##############################################################################
hi StatusLine term=bold,reverse cterm=bold ctermfg=0 ctermbg=0 gui=bold 
	\ guifg=#000000 guibg=#dadada
hi StatusLineNC term=reverse cterm=reverse ctermfg=242 ctermbg=16 
	\ gui=reverse guifg=#707070 guibg=#000000
hi Normal ctermbg=none
" ##############################################################################
" ##################    MAPPINGS    ############################################
" ##############################################################################
nnoremap <C-S> :w <CR>
nnoremap <C-Q> :q <CR>
" ##############################################################################
" ##################    AUTOCMD    #############################################
" ##############################################################################
" /***    gopher    ***********************************************************/
au filetype text setlocal cc=39 tw=39
" /***    netrw    ************************************************************/
augroup netrw
  autocmd!
  autocmd FileType netrw setlocal number relativenumber
augroup END
" /***    markdown    *********************************************************/
augroup markdownOpts
  autocmd!
  autocmd Filetype markdown setlocal expandtab
  	\ sw=4 sts=4 ts=4
augroup END
" /***    c    ****************************************************************/
augroup cOpts
  autocmd!
  autocmd Filetype c setlocal noexpandtab
  	\ sw=0 sts=0 ts=8
augroup END
" /***    make    *************************************************************/
augroup makeOpts
  autocmd!
  autocmd Filetype make setlocal noexpandtab
  	\ sw=0 sts=0 ts=8
augroup END
" /***    perl    *************************************************************/
augroup perlOpts
  autocmd!
  autocmd Filetype perl setlocal expandtab
  	\ sw=4 sts=4 ts=4
augroup END
" /***    python    ***********************************************************/
augroup pythonOpts
  autocmd!
  autocmd Filetype python setlocal expandtab
  	\ sw=4 sts=4 ts=4
augroup END
" /***    java    *************************************************************/
augroup JavaOpts
  autocmd!
  autocmd Filetype java setlocal expandtab
  	\ sw=4 sts=4 ts=4
augroup END
" ##############################################################################
" ##################    FUNCTIONS    ###########################################
" ##############################################################################
" /***    ToggleNetrw    ******************************************************/
" /*
"  * Open left explorer for current file's directory
"  */
function! ToggleNetrw()
  if bufwinnr('__Netrw__') != -1
    " close if open
    execute bufwinnr('__Netrw__') . 'wincmd c'
  else
    " open left pane showing current file's directory
    execute 'Lexplore %:p:h'
     " the netrw buffer is now in the left window — set its width
    wincmd h            " move to left window (netrw)
    execute 'vertical resize 40'
    " wincmd l            " go back to previous window (right)
    " rename buffer so we can detect it later
    let lnum = line('$')
    exe 'file __Netrw__'
  endif
endfunction
" Map <Leader>e to toggle explorer (use \e by default)
nnoremap <silent> <Leader>e :call ToggleNetrw()<CR>
