Last active
December 30, 2015 02:13
-
-
Save di3goleite/8eab28d63e2abadfbb40 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"***************************************************************************** | |
"" NeoBundle core | |
"***************************************************************************** | |
if has('vim_starting') | |
set nocompatible " Be iMproved | |
" Required: | |
set runtimepath+=~/.vim/bundle/neobundle.vim/ | |
endif | |
let neobundle_readme=expand('~/.vim/bundle/neobundle.vim/README.md') | |
let g:vim_bootstrap_langs = "php,python,javascript,c,html" | |
let g:vim_bootstrap_editor = "vim" " nvim or vim | |
if !filereadable(neobundle_readme) | |
echo "Installing NeoBundle..." | |
echo "" | |
silent !mkdir -p ~/.vim/bundle | |
silent !git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim/ | |
let g:not_finsh_neobundle = "yes" | |
" Run shell script if exist on custom select language | |
endif | |
" Required: | |
call neobundle#begin(expand('~/.vim/bundle/')) | |
" Let NeoBundle manage NeoBundle | |
" Required: | |
NeoBundleFetch 'Shougo/neobundle.vim' | |
"***************************************************************************** | |
"" NeoBundle install packages | |
"***************************************************************************** | |
NeoBundle 'scrooloose/nerdtree' | |
NeoBundle 'jistr/vim-nerdtree-tabs.git' | |
NeoBundle 'tpope/vim-commentary' | |
NeoBundle 'tpope/vim-fugitive' | |
NeoBundle 'ctrlpvim/ctrlp.vim' | |
NeoBundle 'bling/vim-airline' | |
NeoBundle 'airblade/vim-gitgutter' | |
NeoBundle 'sheerun/vim-polyglot' | |
NeoBundle 'vim-scripts/grep.vim' | |
NeoBundle 'vim-scripts/CSApprox' | |
NeoBundle 'bronson/vim-trailing-whitespace' | |
NeoBundle 'jiangmiao/auto-pairs' | |
NeoBundle 'majutsushi/tagbar' | |
NeoBundle 'scrooloose/syntastic' | |
NeoBundle 'Shougo/vimproc.vim', { | |
\ 'build' : { | |
\ 'windows' : 'tools\\update-dll-mingw', | |
\ 'cygwin' : 'make -f make_cygwin.mak', | |
\ 'mac' : 'make -f make_mac.mak', | |
\ 'unix' : 'make -f make_unix.mak', | |
\ }, | |
\ } | |
"" Vim-Session | |
NeoBundle 'xolox/vim-misc' | |
NeoBundle 'xolox/vim-session' | |
if v:version >= 703 | |
NeoBundle 'Shougo/vimshell.vim' | |
endif | |
if v:version >= 704 | |
"" Snippets | |
NeoBundle 'SirVer/ultisnips' | |
NeoBundle 'FelikZ/ctrlp-py-matcher' | |
endif | |
NeoBundle 'honza/vim-snippets' | |
"" Color | |
NeoBundle 'tomasr/molokai' | |
"" Vim-Bootstrap Updater | |
" NeoBundle 'sherzberg/vim-bootstrap-updater' | |
"" Custom bundles | |
"" Python Bundle | |
NeoBundle "davidhalter/jedi-vim" | |
NeoBundle "Yggdroot/indentLine" | |
NeoBundle 'vim-scripts/c.vim' | |
"" PHP Bundle | |
NeoBundle 'arnaud-lb/vim-php-namespace' | |
"" HTML Bundle | |
NeoBundle 'amirh/HTML-AutoCloseTag' | |
NeoBundle 'hail2u/vim-css3-syntax' | |
NeoBundle 'gorodinskiy/vim-coloresque' | |
NeoBundle 'tpope/vim-haml' | |
NeoBundle 'mattn/emmet-vim' | |
"" Javascript Bundle | |
NeoBundle 'jelera/vim-javascript-syntax' | |
"" Include user's extra bundle | |
if filereadable(expand("~/.vimrc.local.bundles")) | |
source ~/.vimrc.local.bundles | |
endif | |
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 | |
"" Fix backspace indent | |
set backspace=indent,eol,start | |
"" 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 binary | |
set ttyfast | |
"" Directories for swp files | |
set nobackup | |
set noswapfile | |
set fileformats=unix,dos,mac | |
set showcmd | |
set shell=/bin/sh | |
" session management | |
let g:session_directory = "~/.vim/session" | |
let g:session_autoload = "no" | |
let g:session_autosave = "no" | |
let g:session_command_aliases = 1 | |
"***************************************************************************** | |
"" Visual Settings | |
"***************************************************************************** | |
syntax on | |
set ruler | |
set number | |
set background=dark | |
let no_buffers_menu=1 | |
if !exists('g:not_finsh_neobundle') | |
colorscheme solarized | |
endif | |
set mousemodel=popup | |
set t_Co=256 | |
set cursorline | |
set guioptions=egmrti | |
set gfn=Monospace\ 10 | |
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=gnome-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 | |
"" 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)\ | |
if exists("*fugitive#statusline") | |
set statusline+=%{fugitive#statusline()} | |
endif | |
" vim-airline | |
" let g:airline_theme = 'powerlineish' | |
let g:airline_theme = 'solarized' | |
let g:airline#extensions#syntastic#enabled = 1 | |
let g:airline#extensions#branch#enabled = 1 | |
let g:airline#extensions#tabline#enabled = 1 | |
let g:airline#extensions#tagbar#enabled = 1 | |
"***************************************************************************** | |
"" Abbreviations | |
"***************************************************************************** | |
"" no one is really happy until you have this shortcuts | |
cnoreabbrev W! w! | |
cnoreabbrev Q! q! | |
cnoreabbrev Qall! qall! | |
cnoreabbrev Wq wq | |
cnoreabbrev Wa wa | |
cnoreabbrev wQ wq | |
cnoreabbrev WQ wq | |
cnoreabbrev W w | |
cnoreabbrev Q q | |
cnoreabbrev Qall qall | |
"" NERDTree configuration | |
let g:NERDTreeChDirMode=2 | |
let g:NERDTreeIgnore=['\.rbc$', '\~$', '\.pyc$', '\.db$', '\.sqlite$', '__pycache__'] | |
let g:NERDTreeSortOrder=['^__\.py$', '\/$', '*', '\.swp$', '\.bak$', '\~$'] | |
let g:NERDTreeShowBookmarks=1 | |
let g:nerdtree_tabs_focus_on_files=1 | |
let g:NERDTreeMapOpenInTabSilent = '<RightMouse>' | |
let g:NERDTreeWinSize = 50 | |
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' | |
let Grep_Skip_Files = '*.log *.db' | |
let Grep_Skip_Dirs = '.git node_modules' | |
" vimshell.vim | |
let g:vimshell_user_prompt = 'fnamemodify(getcwd(), ":~")' | |
let g:vimshell_prompt = '$ ' | |
" terminal emulation | |
if g:vim_bootstrap_editor == 'nvim' | |
nnoremap <silent> <leader>sh :terminal<CR> | |
else | |
nnoremap <silent> <leader>sh :VimShellCreate<CR> | |
endif | |
"***************************************************************************** | |
"" Functions | |
"***************************************************************************** | |
if !exists('*s:setupWrapping') | |
function s:setupWrapping() | |
set wrap | |
set wm=2 | |
set textwidth=79 | |
endfunction | |
endif | |
"***************************************************************************** | |
"" Autocmd Rules | |
"***************************************************************************** | |
"" The PC is fast enough, do syntax highlight syncing from start | |
augroup vimrc-sync-fromstart | |
autocmd! | |
autocmd BufEnter * :syntax sync fromstart | |
augroup END | |
"" Remember cursor position | |
augroup vimrc-remember-cursor-position | |
autocmd! | |
autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif | |
augroup END | |
"" txt | |
augroup vimrc-wrapping | |
autocmd! | |
autocmd BufRead,BufNewFile *.txt call s:setupWrapping() | |
augroup END | |
"" make/cmake | |
augroup vimrc-make-cmake | |
autocmd! | |
autocmd FileType make setlocal noexpandtab | |
autocmd BufNewFile,BufRead CMakeLists.txt setlocal filetype=cmake | |
augroup END | |
set autoread | |
"***************************************************************************** | |
"" Mappings | |
"***************************************************************************** | |
"" Split | |
noremap <Leader>h :<C-u>split<CR> | |
noremap <Leader>v :<C-u>vsplit<CR> | |
"" Git | |
noremap <Leader>ga :Gwrite<CR> | |
noremap <Leader>gc :Gcommit<CR> | |
noremap <Leader>gsh :Gpush<CR> | |
noremap <Leader>gll :Gpull<CR> | |
noremap <Leader>gs :Gstatus<CR> | |
noremap <Leader>gb :Gblame<CR> | |
noremap <Leader>gd :Gvdiff<CR> | |
noremap <Leader>gr :Gremove<CR> | |
" session management | |
nnoremap <leader>so :OpenSession | |
nnoremap <leader>ss :SaveSession | |
nnoremap <leader>sd :DeleteSession<CR> | |
nnoremap <leader>sc :CloseSession<CR> | |
"" Tabs | |
nnoremap <Tab> gt | |
nnoremap <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[\/](node_modules|target|dist)|(\.(swp|tox|ico|git|hg|svn))$' | |
let g:ctrlp_user_command = "find %s -type f | grep -Ev '"+ g:ctrlp_custom_ignore +"'" | |
let g:ctrlp_use_caching = 1 | |
cnoremap <C-P> <C-R>=expand("%:p:h") . "/" <CR> | |
noremap <leader>b :CtrlPBuffer<CR> | |
let g:ctrlp_map = '<leader>e' | |
let g:ctrlp_open_new_file = 'r' | |
let g:ctrlp_cache_dir = $HOME . '/.cache/ctrlp' | |
if executable('ag') | |
let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' | |
endif | |
" snippets | |
let g:UltiSnipsExpandTrigger="<tab>" | |
let g:UltiSnipsJumpForwardTrigger="<tab>" | |
let g:UltiSnipsJumpBackwardTrigger="<c-b>" | |
let g:UltiSnipsEditSplit="vertical" | |
" 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 | |
" Tagbar | |
nmap <silent> <F4> :TagbarToggle<CR> | |
let g:tagbar_autofocus = 1 | |
" Disable visualbell | |
set visualbell t_vb= | |
"" Copy/Paste/Cut | |
if has('unnamedplus') | |
set clipboard=unnamed,unnamedplus | |
endif | |
noremap YY "+y<CR> | |
noremap <leader>p "+gP<CR> | |
noremap XX "+x<CR> | |
if has('macunix') | |
" pbcopy for OSX copy/paste | |
vmap <C-x> :!pbcopy<CR> | |
vmap <C-c> :w !pbcopy<CR><CR> | |
endif | |
"" Buffer nav | |
noremap <leader>z :bp<CR> | |
noremap <leader>q :bp<CR> | |
noremap <leader>x :bn<CR> | |
noremap <leader>w :bn<CR> | |
"" Close buffer | |
noremap <leader>c :bd<CR> | |
"" Clean search (highlight) | |
nnoremap <silent> <leader><space> :noh<cr> | |
"" Switching windows | |
noremap <C-j> <C-w>j | |
noremap <C-k> <C-w>k | |
noremap <C-l> <C-w>l | |
noremap <C-h> <C-w>h | |
"" Vmap for maintain Visual Mode after shifting > and < | |
vmap < <gv | |
vmap > >gv | |
"" Move visual block | |
vnoremap J :m '>+1<CR>gv=gv | |
vnoremap K :m '<-2<CR>gv=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 | |
augroup vimrc-python | |
autocmd! | |
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 | |
augroup END | |
" 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'] | |
let g:syntastic_python_flake8_post_args='--ignore=W391' | |
" vim-airline | |
let g:airline#extensions#virtualenv#enabled = 1 | |
let g:javascript_enable_domhtmlcss = 1 | |
"" Include user's local vim config | |
if filereadable(expand("~/.vimrc.local")) | |
source ~/.vimrc.local | |
endif | |
"***************************************************************************** | |
"" Convenience variables | |
"***************************************************************************** | |
" vim-airline | |
if !exists('g:airline_symbols') | |
let g:airline_symbols = {} | |
endif | |
if !exists('g:airline_powerline_fonts') | |
let g:airline#extensions#tabline#left_sep = ' ' | |
let g:airline#extensions#tabline#left_alt_sep = '|' | |
let g:airline_left_sep = '▶' | |
let g:airline_left_alt_sep = '»' | |
let g:airline_right_sep = '◀' | |
let g:airline_right_alt_sep = '«' | |
let g:airline#extensions#branch#prefix = '⤴' "➔, ➥, ⎇ | |
let g:airline#extensions#readonly#symbol = '⊘' | |
let g:airline#extensions#linecolumn#prefix = '¶' | |
let g:airline#extensions#paste#symbol = 'ρ' | |
let g:airline_symbols.linenr = '␊' | |
let g:airline_symbols.branch = '⎇' | |
let g:airline_symbols.paste = 'ρ' | |
let g:airline_symbols.paste = 'Þ' | |
let g:airline_symbols.paste = '∥' | |
let g:airline_symbols.whitespace = 'Ξ' | |
else | |
let g:airline#extensions#tabline#left_sep = '' | |
let g:airline#extensions#tabline#left_alt_sep = '' | |
" powerline symbols | |
let g:airline_left_sep = '' | |
let g:airline_left_alt_sep = '' | |
let g:airline_right_sep = '' | |
let g:airline_right_alt_sep = '' | |
let g:airline_symbols.branch = '' | |
let g:airline_symbols.readonly = '' | |
let g:airline_symbols.linenr = '' | |
endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment