" Plugins for review:
"   'msanders/snipmate.vim'
"   'godlygeek/tabular'
"   'plasticboy/vim-markdown'
" Consider using sections like this:
"     Section Name {{{
"     set number "This will be folded
"     }}}

runtime bundle/vim-pathogen/autoload/pathogen.vim
execute pathogen#infect()
set nocompatible " Be iMproved
let mapleader="," " set leader early as otherwise it wouldn't work
filetype plugin indent on

" ----- general settings -----
set encoding=utf-8
set ff=unix
set number
set clipboard=unnamedplus
set showmatch " show matching brackets

set incsearch " Find as you type search
set hlsearch " Highlight search terms
set ignorecase " Case-insensitive searching.
set smartcase " But case-sensitive if expression contains a capital letter.

set history=1000 " remember more commands and search history
set undolevels=1000 " use many levels of undo

set nobackup
set noswapfile

set tabstop=4
set shiftwidth=4
set textwidth=80
set cc=81

set list
set listchars=tab:>-,trail:~

set lazyredraw

" jk is escape
inoremap jk <esc>

augroup reload_vimrc " {
    autocmd!
    autocmd BufWritePost $MYVIMRC source $MYVIMRC
augroup END " }

map <silent> <leader>1 :diffget 2<CR> :diffupdate<CR>
map <silent> <leader>2 :diffget 3<CR> :diffupdate<CR>
map <silent> <leader>3 :diffget 4<CR> :diffupdate<CR>

autocmd InsertEnter * :let @/=""
autocmd InsertLeave * :let @/=""

"set expandtab

map Q @
map <S-m> :tabprevious<CR>
map m :tabnext<CR>

syntax enable
set background=dark
colorscheme distinguished

" remove trailing whitespaces on save
autocmd BufWritePre * :%s/\s\+$//e

" save file with root permissions
cmap w!! w !sudo tee % >/dev/null

" Markdown
autocmd BufRead,BufNew *.md set filetype=markdown

" airline
set laststatus=2
let g:airline_theme = 'powerlineish'
"let g:airline#extensions#tabline#enabled = 1 " make tabs look crazy
" only enable trailing whitespace checking
let g:airline#extensions#whitespace#checks = [ 'trailing' ]
let g:airline#extensions#syntastic#enabled = 0

" Unite
nnoremap <C-p> :Unite file_rec/async<cr>

" Start interactive EasyAlign in visual mode (e.g. vip<Enter>)
vmap <Enter> <Plug>(EasyAlign)

" Start interactive EasyAlign for a motion/text object (e.g. gaip)
nmap ga <Plug>(EasyAlign)

" java
au BufNewFile,BufRead *.java set tabstop=4 softtabstop=4 shiftwidth=4 smarttab autoindent cc=121

" eclim
nmap <leader>a :JavaImportOrganize<cr>
nmap <leader>t :ProjectTree<cr>
nmap <leader>o :ProjectOpen<cr>

" toggle gundo
nnoremap <leader>u :GundoToggle<CR>