|
|
|
"*****************************************************************************
|
|
|
|
"" 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 = '<RightMouse>'
|
|
|
|
let g:NERDTreeWinSize = 20
|
|
|
|
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.db,*.sqlite
|
|
|
|
nnoremap <silent> <F2> :NERDTreeFind<CR>
|
|
|
|
noremap <F3> :NERDTreeToggle<CR>
|
|
|
|
|
|
|
|
" grep.vim
|
|
|
|
nnoremap <silent> <leader>f :Rgrep<CR>
|
|
|
|
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 <Leader>h :split<CR>
|
|
|
|
noremap <Leader>v :vsplit<CR>
|
|
|
|
|
|
|
|
"" Git
|
|
|
|
noremap <Leader>ga :!git add .<CR>
|
|
|
|
noremap <Leader>gc :!git commit -m '<C-R>="'"<CR>
|
|
|
|
noremap <Leader>gsh :!git push<CR>
|
|
|
|
noremap <Leader>gs :Gstatus<CR>
|
|
|
|
noremap <Leader>gb :Gblame<CR>
|
|
|
|
noremap <Leader>gd :Gvdiff<CR>
|
|
|
|
noremap <Leader>gr :Gremove<CR>
|
|
|
|
|
|
|
|
"" Tabs
|
|
|
|
nmap <Tab> gt
|
|
|
|
nmap <S-Tab> gT
|
|
|
|
nnoremap <silent> <S-t> :tabnew<CR>
|
|
|
|
|
|
|
|
"" Set working directory
|
|
|
|
nnoremap <leader>. :lcd %:p:h<CR>
|
|
|
|
|
|
|
|
"" Opens an edit command with the path of the currently edited file filled in
|
|
|
|
noremap <Leader>e :e <C-R>=expand("%:p:h") . "/" <CR>
|
|
|
|
|
|
|
|
"" Opens a tab edit command with the path of the currently edited file filled
|
|
|
|
noremap <Leader>te :tabe <C-R>=expand("%:p:h") . "/" <CR>
|
|
|
|
|
|
|
|
"" 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 <C-P> <C-R>=expand("%:p:h") . "/" <CR>
|
|
|
|
noremap <leader>b :CtrlPBuffer<CR>
|
|
|
|
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=1
|
|
|
|
let g:syntastic_aggregate_errors = 1
|
|
|
|
|
|
|
|
" vim-airline
|
|
|
|
let g:airline_enable_syntastic = 1
|
|
|
|
|
|
|
|
"" Remove trailing whitespace on <leader>S
|
|
|
|
nnoremap <leader>:call TrimWhiteSpace()<cr>:let @/=''<CR>
|
|
|
|
|
|
|
|
"" Copy/Paste/Cut
|
|
|
|
noremap YY "+y<CR>
|
|
|
|
noremap P "+gP<CR>
|
|
|
|
noremap XX "+x<CR>
|
|
|
|
|
|
|
|
" pbcopy for OSX copy/paste
|
|
|
|
vmap <C-x> :!pbcopy<CR>
|
|
|
|
vmap <C-c> :w !pbcopy<CR><CR>
|
|
|
|
|
|
|
|
"" Buffer nav
|
|
|
|
nmap <S-p> :bp<CR>
|
|
|
|
nmap <S-o> :bn<CR>
|
|
|
|
noremap ,z :bp<CR>
|
|
|
|
noremap ,q :bp<CR>
|
|
|
|
noremap ,x :bn<CR>
|
|
|
|
noremap ,w :bn<CR>
|
|
|
|
|
|
|
|
"" Close buffer
|
|
|
|
noremap ,c :bd<CR>
|
|
|
|
|
|
|
|
"" Clean search (highlight)
|
|
|
|
nnoremap <silent> <leader><space> :noh<cr>
|
|
|
|
|
|
|
|
"" Vmap for maintain Visual Mode after shifting > and <
|
|
|
|
vmap < <gv
|
|
|
|
vmap > >gv
|
|
|
|
|
|
|
|
"" Open current line on GitHub
|
|
|
|
noremap ,o :!echo `git url`/blob/`git rev-parse --abbrev-ref HEAD`/%\#L<C-R>=line('.')<CR> \| xargs open<CR><CR>
|
|
|
|
"" 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 = "<leader>g"
|
|
|
|
let g:jedi#goto_definitions_command = "<leader>d"
|
|
|
|
let g:jedi#documentation_command = "K"
|
|
|
|
let g:jedi#usages_command = "<leader>n"
|
|
|
|
let g:jedi#rename_command = "<leader>r"
|
|
|
|
let g:jedi#show_call_signatures = "0"
|
|
|
|
let g:jedi#completions_command = "<C-Space>"
|
|
|
|
|
|
|
|
" 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 <silent> <F4> :TagbarToggle<CR>
|
|
|
|
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
|