Created
March 11, 2015 18:50
-
-
Save ricardodovalle/3c399b53abb3b9311134 to your computer and use it in GitHub Desktop.
my vimrc
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
" Note: Skip initialization for vim-tiny or vim-small. | |
if !1 | finish | endif | |
if has('vim_starting') | |
set nocompatible " Be iMproved | |
" Required: | |
set runtimepath+=~/.vim/bundle/neobundle.vim/ | |
endif | |
" Required: | |
call neobundle#begin(expand('~/.vim/bundle/')) | |
" Let NeoBundle manage NeoBundle | |
" Required: | |
NeoBundleFetch 'Shougo/neobundle.vim' | |
"" Navigation | |
NeoBundle 'kien/ctrlp.vim' | |
NeoBundle 'majutsushi/tagbar' | |
NeoBundle 'scrooloose/nerdtree' | |
NeoBundle 'sheerun/vim-polyglot' | |
NeoBundle 'Shougo/unite.vim' | |
NeoBundle 'Shougo/neomru.vim' | |
"" General editing | |
""NeoBundle 'ervandew/supertab' | |
NeoBundle 'terryma/vim-multiple-cursors' | |
NeoBundle 'tpope/vim-commentary' | |
NeoBundle 'tpope/vim-endwise' | |
NeoBundle 'tpope/vim-surround' | |
NeoBundle 'Valloric/YouCompleteMe' | |
NeoBundle 'Yggdroot/indentLine' | |
"" Vanity | |
NeoBundle 'bling/vim-airline' | |
NeoBundle 'altercation/vim-colors-solarized' | |
"" Snippets | |
NeoBundle 'SirVer/ultisnips' | |
NeoBundle 'honza/vim-snippets' | |
"" Git | |
NeoBundle 'airblade/vim-gitgutter' | |
NeoBundle 'tpope/vim-fugitive' | |
"" C | |
NeoBundle 'vim-scripts/c.vim' | |
"" Go | |
NeoBundle "fatih/vim-go" | |
"" HTML | |
NeoBundle 'amirh/HTML-AutoCloseTag' | |
NeoBundle 'hail2u/vim-css3-syntax' | |
NeoBundle 'gorodinskiy/vim-coloresque' | |
NeoBundle 'tpope/vim-haml' | |
"" Javascript | |
NeoBundle 'burnettk/vim-angular' | |
NeoBundle 'scrooloose/syntastic' | |
NeoBundle 'kchmck/vim-coffee-script' | |
"" JSON | |
NeoBundle 'elzr/vim-json' | |
"" QML | |
NeoBundle 'peterhoeg/vim-qml' | |
"" Ruby on Rails | |
NeoBundle 'thoughtbot/vim-rspec' | |
NeoBundle 'tpope/vim-bundler' | |
NeoBundle 'tpope/vim-dispatch' | |
NeoBundle 'tpope/vim-rails' | |
NeoBundle 'tpope/vim-rake' | |
NeoBundle 'vim-ruby/vim-ruby' | |
call neobundle#end() | |
"***************************************************************************** | |
"" Basic Setup | |
"*****************************************************************************" | |
"" Encoding | |
set encoding=utf-8 | |
set fileencoding=utf-8 | |
set fileencodings=utf-8 | |
"" Fix backspace indent | |
set backspace=indent,eol,start | |
"" allow plugins by file type | |
filetype on | |
filetype indent on | |
filetype plugin on | |
"" Indenting source code | |
set autoindent | |
"" Tabs. May be overriten by autocmd rules | |
set tabstop=2 | |
set softtabstop=2 | |
set shiftwidth=2 | |
set expandtab | |
"" Split | |
set splitbelow | |
set splitright | |
"" 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 showcmd | |
"***************************************************************************** | |
"" Visual Settigns | |
"***************************************************************************** | |
syntax on | |
set ruler | |
set number | |
let no_buffers_menu=1 | |
highlight BadWhitespace ctermbg=red guibg=red | |
colorscheme solarized | |
set colorcolumn=80 | |
set mousemodel=popup | |
set t_Co=256 | |
set nocursorline | |
set guioptions=egmrti | |
set gfn=Monospace\ 8 | |
"" 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)\ %{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 | |
cnoreabbrev W! w! | |
cnoreabbrev Q! q! | |
cnoreabbrev Wq wq | |
cnoreabbrev Wa wa | |
cnoreabbrev wQ wq | |
cnoreabbrev WQ wq | |
cnoreabbrev W w | |
cnoreabbrev Q q | |
"" 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 = 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' | |
" vimshell | |
let g:vimshell_user_prompt = 'fnamemodify(getcwd(), ":~")' | |
let g:vimshell_prompt = '$ ' | |
nnoremap <silent> <leader>sh :VimShellCreate<CR> | |
"***************************************************************************** | |
"" Functions | |
"***************************************************************************** | |
if !exists('*s:setupWrapping') | |
function s:setupWrapping() | |
set wrap | |
set wm=2 | |
set textwidth=79 | |
endfunction | |
endif | |
if !exists('*TrimWhiteSpace') | |
function TrimWhiteSpace() | |
let @*=line(".") | |
%s/\s*$//e | |
'' | |
endfunction | |
endif | |
"***************************************************************************** | |
"" 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 :<C-u>split<CR> | |
noremap <Leader>v :<C-u>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 | |
nnoremap <Tab> gt | |
nnoremap <S-Tab> gT | |
nnoremap <silent> <S-t> :tabnew<CR> | |
"" Split | |
nnoremap <C-J> <C-W><C-J> | |
nnoremap <C-K> <C-W><C-K> | |
nnoremap <C-L> <C-W><C-L> | |
nnoremap <C-H> <C-W><C-H> | |
"" 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_open_new_file = 'r' | |
" NERDTree | |
noremap <Leader>n :NERDTreeToggle<cr> | |
" 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 | |
" vim-airline | |
let g:airline_enable_syntastic = 1 | |
" indentLine | |
" let g:indentLine_color_term = 239 | |
let g:indentLine_color_tty_dark = 1 | |
" let g:indentLine_char = '┆' | |
let g:indentLine_leadingSpaceChar = '.' | |
let g:indentLine_leadingSpaceEnabled = 1 | |
"" Remove trailing whitespace on <leader>S | |
nnoremap <silent> <leader>S :call TrimWhiteSpace()<cr>:let @/=''<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> | |
"" Vmap for maintain Visual Mode after shifting > and < | |
vmap < <gv | |
vmap > >gv | |
" tpope/rails | |
let g:rubycomplete_buffer_loading = 1 | |
let g:rubycomplete_classes_in_global = 1 | |
let g:rubycomplete_rails = 1 | |
" unite.vim | |
nnoremap <silent> <Leader>m :Unite -buffer-name=recent -winheight=10 file_mru<cr> | |
nnoremap <Leader>f :Unite grep:.<cr> | |
nnoremap <Leader>b :Unite -buffer-name=buffers -winheight=10 buffer<cr> | |
nnoremap <silent> <Leader>m :Unite -buffer-name=recent -winheight=10 file_mru<cr> | |
" Tagbar | |
nmap <silent> <F4> :TagbarToggle<CR> | |
let g:tagbar_autofocus = 1 | |
let g:tagbar_type_go = { | |
\ 'ctagstype' : 'go', | |
\ 'kinds' : [ 'p:package', 'i:imports:1', 'c:constants', 'v:variables', | |
\ 't:types', 'n:interfaces', 'w:fields', 'e:embedded', 'm:methods', | |
\ 'r:constructor', 'f:functions' ], | |
\ 'sro' : '.', | |
\ 'kind2scope' : { 't' : 'ctype', 'n' : 'ntype' }, | |
\ 'scope2kind' : { 'ctype' : 't', 'ntype' : 'n' }, | |
\ 'ctagsbin' : 'gotags', | |
\ 'ctagsargs' : '-sort -silent' | |
\ } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment