"***************************************************************************** "" NeoBundle core "***************************************************************************** if has('vim_starting') set nocompatible " Be iMproved " Required: set runtimepath+=~/.vim/bundle/neobundle.vim/ endif let vundle_readme=expand('~/.vim/bundle/neobundle.vim/README.md') if !filereadable(vundle_readme) echo "Installing NeoBundle..." echo "" silent !mkdir -p ~/.vim/bundle silent !git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim/ endif " Required: call neobundle#begin(expand('~/.vim/bundle/')) " Let NeoBundle manage NeoBundle " Required: NeoBundleFetch 'Shougo/neobundle.vim' "***************************************************************************** "" NeoBundle install packages "***************************************************************************** NeoBundle 'scrooloose/nerdtree' NeoBundle 'tpope/vim-commentary' NeoBundle 'tpope/vim-fugitive' NeoBundle 'kien/ctrlp.vim' NeoBundle 'bling/vim-airline' NeoBundle 'airblade/vim-gitgutter' NeoBundle 'sheerun/vim-polyglot' NeoBundle 'vim-scripts/grep.vim' " NeoBundle 'vim-scripts/CSApprox' "" Snippets " NeoBundle "MarcWeber/vim-addon-mw-utils" " NeoBundle "tomtom/tlib_vim" " NeoBundle "honza/vim-snippets" " NeoBundle 'garbas/vim-snipmate' NeoBundle 'SirVer/ultisnips' NeoBundle 'honza/vim-snippets' "" Color NeoBundle 'tomasr/molokai' NeoBundle 'croaker/mustang-vim' NeoBundle 'Ambient-Color-Scheme' NeoBundle 'EditPlus' NeoBundle 'altercation/vim-colors-solarized' NeoBundle 'w0ng/vim-hybrid' "" Custom bundles NeoBundle 'jiangmiao/auto-pairs' "" Python Bundle NeoBundle "davidhalter/jedi-vim" NeoBundle "scrooloose/syntastic" NeoBundle "majutsushi/tagbar" "" HTML Bundle NeoBundle 'amirh/HTML-AutoCloseTag' NeoBundle 'hail2u/vim-css3-syntax' NeoBundle 'gorodinskiy/vim-coloresque' NeoBundle 'tpope/vim-haml' "" Javascript Bundle NeoBundle "scrooloose/syntastic" call neobundle#end() " Required: filetype plugin indent on " If there are uninstalled bundles found on startup, " this will conveniently prompt you to install them. NeoBundleCheck "***************************************************************************** "" Basic Setup "*****************************************************************************" "" Encoding set encoding=utf-8 set fileencoding=utf-8 set fileencodings=utf-8 "" Unleash all VIM power set nocompatible "" Fix backspace indent set backspace=indent,eol,start "" allow plugins by file type filetype on filetype plugin on filetype indent on "" Tabs. May be overriten by autocmd rules set tabstop=4 set softtabstop=0 set shiftwidth=4 set expandtab "" Map leader to , let mapleader=',' "" Enable hidden buffers set hidden "" Searching set hlsearch set incsearch set ignorecase set smartcase "" Encoding set bomb set ttyfast set binary "" Directories for swp files set nobackup set noswapfile set fileformats=unix,dos,mac set backspace=indent,eol,start set showcmd set shell=/bin/sh "***************************************************************************** "" Visual Settigns "***************************************************************************** syntax on set ruler set number let no_buffers_menu=1 highlight BadWhitespace ctermbg=red guibg=red colorscheme mustang set mousemodel=popup set t_Co=256 set nocursorline set guioptions=egmrt set gfn=Monospace\ 8 " if has("gui_running") " if has("gui_mac") || has("gui_macvim") " set guifont=Menlo:h12 " set transparency=7 " endif " else " let g:CSApprox_loaded = 1 " if $COLORTERM == 'gnome-terminal' " set term=xterm-256color " else " if $TERM == 'xterm' " set term=xterm-256color " endif " endif " endif " if &term =~ '256color' " set t_ut= " endif "" Disable the blinking cursor. set gcr=a:blinkon0 set scrolloff=3 "" Status bar set laststatus=2 "" allow backspacing over everything in insert mode set backspace=indent,eol,start "" Use modeline overrides set modeline set modelines=10 set title set titleold="Terminal" set titlestring=%F set statusline=%F%m%r%h%w%=(%{&ff}/%Y)\ (line\ %l\/%L,\ col\ %c)\ %{fugitive#statusline()} let g:airline_theme = 'powerlineish' let g:airline_enable_branch = 1 let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#left_sep = ' ' let g:airline#extensions#tabline#left_alt_sep = '|' "***************************************************************************** "" Abbreviations "***************************************************************************** "" no one is really happy until you have this shortcuts cab W! w! cab Q! q! cab Wq wq cab Wa wa cab wQ wq cab WQ wq cab W w cab Q q "" NERDTree configuration let NERDTreeChDirMode=2 let NERDTreeIgnore=['\.rbc$', '\~$', '\.pyc$', '\.db$', '\.sqlite$', '__pycache__'] let NERDTreeSortOrder=['^__\.py$', '\/$', '*', '\.swp$', '\.bak$', '\~$'] let NERDTreeShowBookmarks=1 let g:nerdtree_tabs_focus_on_files=1 let g:NERDTreeMapOpenInTabSilent = '' let g:NERDTreeWinSize = 20 set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.db,*.sqlite nnoremap :NERDTreeFind noremap :NERDTreeToggle " grep.vim nnoremap f :Rgrep let Grep_Default_Options = '-IR' "***************************************************************************** "" Functions "***************************************************************************** function s:setupWrapping() set wrap set wm=2 set textwidth=79 endfunction function TrimWhiteSpace() let @*=line(".") %s/\s*$//e '' :endfunction "***************************************************************************** "" Autocmd Rules "***************************************************************************** "" The PC is fast enough, do syntax highlight syncing from start autocmd BufEnter * :syntax sync fromstart "" Remember cursor position autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif "" txt au BufRead,BufNewFile *.txt call s:setupWrapping() "" make/cmake au FileType make set noexpandtab autocmd BufNewFile,BufRead CMakeLists.txt setlocal ft=cmake if has("gui_running") autocmd BufWritePre * :call TrimWhiteSpace() endif set autoread "***************************************************************************** "" Mappings "***************************************************************************** "" Split noremap h :split noremap v :vsplit "" Git noremap ga :!git add . noremap gc :!git commit -m '="'" noremap gsh :!git push noremap gs :Gstatus noremap gb :Gblame noremap gd :Gvdiff noremap gr :Gremove "" Tabs nmap gt nmap gT nnoremap :tabnew "" Set working directory nnoremap . :lcd %:p:h "" Opens an edit command with the path of the currently edited file filled in noremap e :e =expand("%:p:h") . "/" "" Opens a tab edit command with the path of the currently edited file filled noremap te :tabe =expand("%:p:h") . "/" "" ctrlp.vim set wildmode=list:longest,list:full set wildignore+=*.o,*.obj,.git,*.rbc,.pyc,__pycache__ let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn|tox)$' let g:ctrlp_user_command = "find %s -type f | grep -Ev '"+ g:ctrlp_custom_ignore +"'" let g:ctrlp_use_caching = 0 cnoremap =expand("%:p:h") . "/" noremap b :CtrlPBuffer let g:ctrlp_map = ',e' let g:ctrlp_open_new_file = 'r' " syntastic let g:syntastic_always_populate_loc_list=1 let g:syntastic_error_symbol='✗' let g:syntastic_warning_symbol='⚠' let g:syntastic_style_error_symbol = '✗' let g:syntastic_style_warning_symbol = '⚠' let g:syntastic_auto_loc_list=0 let g:syntastic_aggregate_errors = 1 let g:syntastic_loc_list_height=3 " vim-airline let g:airline_enable_syntastic = 1 "" Remove trailing whitespace on S nnoremap :call TrimWhiteSpace():let @/='' "" Copy/Paste/Cut noremap YY "+y noremap P "+gP noremap XX "+x " pbcopy for OSX copy/paste vmap :!pbcopy vmap :w !pbcopy "" Buffer nav nmap :bp nmap :bn noremap ,z :bp noremap ,q :bp noremap ,x :bn noremap ,w :bn "" Close buffer noremap ,c :bd "" Clean search (highlight) nnoremap :noh "" Vmap for maintain Visual Mode after shifting > and < vmap < >gv "" Open current line on GitHub noremap ,o :!echo `git url`/blob/`git rev-parse --abbrev-ref HEAD`/%\#L=line('.') \| xargs open "" Custom configs " vim-python autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=8 colorcolumn=79 \ formatoptions+=croq softtabstop=4 smartindent \ cinwords=if,elif,else,for,while,try,except,finally,def,class,with " jedi-vim let g:jedi#popup_on_dot = 0 let g:jedi#goto_assignments_command = "g" let g:jedi#goto_definitions_command = "d" let g:jedi#documentation_command = "K" let g:jedi#usages_command = "n" let g:jedi#rename_command = "r" let g:jedi#show_call_signatures = "0" let g:jedi#completions_command = "" " syntastic let g:syntastic_python_checkers=['python', 'flake8'] " vim-airline let g:airline#extensions#virtualenv#enabled = 1 let g:airline#extensions#tagbar#enabled = 1 let g:airline_powerline_fonts = 1 let g:airline_theme = 'understated' " Tagbar nmap :TagbarToggle let g:tagbar_autofocus = 1 let g:javascript_enable_domhtmlcss = 1 "" Include user's local vim config if filereadable(expand("~/.vim/local.vim")) source ~/.vim/local.vim endif