set shell=/bin/bash cd ~/Code " #################### " ### Vundle setup ### " #################### set rtp+=~/.vim/bundle/vundle/ call vundle#rc() Bundle 'gmarik/vundle' " ############## " ### Colors ### " ############## Bundle "daylerees/colour-schemes", { "rtp": "vim-themes/" } Bundle "chriskempson/tomorrow-theme", { "rtp": "vim/" } Bundle "altercation/solarized", { "rtp": "vim-colors-solarized/" } let g:solarized_termcolors=256 let g:solarized_termtrans=0 let g:solarized_degrade=0 let g:solarized_bold=0 let g:solarized_underline=0 let g:solarized_italic=0 let g:solarized_contrast="normal" " low | normal | high let g:solarized_visibility="normal" " low | normal | high Bundle "thinkpixellab/flatland", { "rtp": "Vim/" } Bundle "sjl/badwolf" Bundle "tomasr/molokai" Bundle "nanotech/jellybeans.vim" Bundle "chriskempson/base16-vim" Bundle "jelera/vim-gummybears-colorscheme" Bundle "tpope/vim-vividchalk" Bundle "yuratomo/neon.vim" syntax on filetype plugin on filetype indent on function! SetRandomColorScheme() let schemes ='peacock grunge freshcut molokai badwolf flatland jellybeans Tomorrow-Night Tomorrow-Night-Eighties ' let schemes.='base16-eighties vividchalk gummybears solarized neon2' let seconds=str2nr(strftime('%S')) let scheme=split(schemes)[seconds%10] set background=dark execute 'colorscheme '.scheme redraw echo 'Color scheme is now set to "'.scheme.'"' endfunction " call SetRandomColorScheme() set background=dark colorscheme solarized nmap cs :call SetRandomColorScheme() " ################# " ### Powerline ### " ################# " Bundle 'Lokaltog/vim-powerline' Bundle 'bling/vim-airline' set laststatus=2 set noshowmode " let g:Powerline_symbols = 'compatible' " (compatible, unicode, fancy) let g:airline_left_sep='' " Remove left arrow separator let g:airline_right_sep='' " Remove right arrow separator " ################# " ### Nerd Tree ### " ################# Bundle 'scrooloose/nerdtree' nmap :NERDTreeToggle let NERDTreeIgnore=['\.DS_Store$', '\.swp$', '\.git$', '\.bundle$', '\.pyc$', '\.sass-cache'] let NERDTreeHighlightCursorline=1 let NERDTreeShowHidden=1 let NERDTreeMinimalUI=1 let NERDTreeDirArrows=1 let NERDChristmasTree=1 let NERDTreeChDirMode=2 let NERDTreeQuitOnOpen=1 let g:NERDTreeWinSize=40 " ###################### " ### Nerd Commenter ### " ###################### Bundle 'scrooloose/nerdcommenter' let g:NERDCreateDefaultMappings=0 let g:NERDCompactSexyComs=1 let g:NERDSpaceDelims=1 nmap cl NERDCommenterToggle vmap cl NERDCommenterToggle nmap NERDCommenterToggle vmap NERDCommenterToggle smap NERDCommenterToggle imap \cl " ######################### " ### Fuzzy File Search ### " ######################### Bundle 'kien/ctrlp.vim' let g:ctrlp_match_window_bottom=1 let g:ctrlp_match_window_reversed=1 " ###################### " ### Syntax Support ### " ###################### Bundle 'tpope/vim-markdown' Bundle 'vim-scripts/nginx.vim' Bundle 'dag/vim-fish' Bundle 'vim-ruby/vim-ruby' Bundle 'wavded/vim-stylus' Bundle 'kchmck/vim-coffee-script' Bundle 'slim-template/vim-slim' Bundle 'jnwhiteh/vim-golang' " ################### " ### Rails Tools ### " ################### Bundle 'tpope/vim-rails' " Usage " :Rmodel, :Rcontroller, :Rspec " ########################### " ### Magic Code Aligning ### " ########################### Bundle 'godlygeek/tabular' " Usage " :Tabularize /= nmap t :Tabularize / " ################### " ### Git Wrapper ### " ################### Bundle 'tpope/vim-fugitive' " Usage " :Gblame, :Gdiff, :Gcommit etc. " ########################### " ### The Silver Searcher ### " ########################### Bundle 'rking/ag.vim' " ############ " ### Misc ### " ############ Bundle 'gmarik/sudo-gui.vim' Bundle 'nginx.vim' Bundle 'tpope/vim-endwise' " Bundle 'vim-scripts/AutoComplPop' " Bundle 'ervandew/supertab' " ################### " ### Preferences ### " ################### set encoding=utf-8 " Because set showmatch " Show matching brackets set backspace=indent,eol,start " Better backspace support set history=1000 " Save 1000 commands in history set undolevels=1000 " Save 1000 commands for undo set completeopt=longest,menuone " Completion preferences set complete=.,w,b,kspell,ss " current buffer, other windows' buffers, dictionary, spelling set relativenumber " Show line numbers (relative) set cursorline " Highlight the current line set tabstop=2 " Tab size set shiftwidth=2 " Must be the same set softtabstop=2 " Must be the same set expandtab " Upaces instead of tabs set nowrap " Wrap lines set nolinebreak " Break lines softly set wrapscan " Wrap search set incsearch " Incremental search set ignorecase " Ignore case when searching set nohlsearch " Don't fucking highlight search set smartcase " Overrides ignore case in case pattern contains upper case char set nolist " Don't show sick characters set textwidth=120 " Text width before wrap set t_Co=256 " Number of terminal colors set mousehide " Hide mouse when typing set guioptions-=L " Disable scrollbars set guioptions-=r " Disable scrollbars set wildignore+=*/tmp/* " Index ignoresa " set guifont=saxMono:h17 " Set font family and size set guifont=Source\ Code\ Pro:h15 " Set font family and size set linespace=4 " Set line padding set hidden " Allow switching unsaved buffers set synmaxcol=160 " Limits syntax highlighting to first 120 symbols; long lines bug fix set number " Show the fucking line numbers already " Sexy highlighting colors highlight Search cterm=none ctermbg=198 ctermfg=7 " ######################## " ### MacVim Specific ### " ######################## if has("gui_macvim") " Use Mac option key as meta key set macmeta " MacVIM shift+arrow-keys behavior (required in .vimrc) let macvim_hig_shift_movement=1 endif " ############# " ### UTF-8 ### " ############# if has("multi_byte") if &termencoding == "" let &termencoding = &encoding endif set encoding=utf-8 setglobal fileencoding=utf-8 " set global bomb set fileencodings=ucs-bom,utf-8,latin1 endif " ################ " ### Triggers ### " ################ if has("autocmd") " Code style autocmd FileType ruby,eruby,yaml set ai sw=2 sts=2 et autocmd FileType ruby,eruby,yaml setlocal foldmethod=manual autocmd User Rails set tabstop=2 shiftwidth=2 softtabstop=2 expandtab autocmd FileType c,python,python3 set tabstop=4 shiftwidth=4 softtabstop=4 expandtab " When vimrc is edited, reload it autocmd! BufWritePost $MYVIMRC source $MYVIMRC " File type recognition autocmd BufNewFile,BufRead *.styl set syntax=stylus autocmd BufNewFile,BufRead *.slim set syntax=slim autocmd BufNewFile,BufRead *.coffee set syntax=coffee autocmd BufNewFile,BufRead *.md set syntax=markdown autocmd BufNewFile,BufRead *.conf set syntax=nginx autocmd BufNewFile,BufRead Capfile,Gemfile set syntax=ruby endif " ########################## " ### Follow Your Leader ### " ########################## " Set the Leader key to comma instead of backslash " let mapleader = "," nmap v :e $MYVIMRC nmap e :e " Buffers nmap bd :bd nmap bb :ls:b nmap ss :w nmap rr :source $MYVIMRC " Search for the word under cursor nmap d /zz " Toggle search highlight nmap h :set hlsearch! nmap hc :let @/="" nmap o :set paste! " Toggle wrap nmap w :set wrap! list! linebreak! " Center line with the find occurance nmap n nzz nmap N Nzz " Siblings nmap ew :e =expand("%:p:h")."/" nmap es :sp =expand("%:p:h")."/" nmap ev :vsp =expand("%:p:h")."/" nmap et :tabedit =expand("%:p:h")."/" " Convert Ruby 1.8 hash syntax to 1.9 nmap r18 :%s/:\(\w\+\)\(\s\+\)=>\s\+/\1:\2/ge nmap cws :call PreservePosition('%s/\s\+$//e') " ####################### " ### Visual Mappings ### " ####################### " Indentation TextMate style nmap << vmap >> " Sudo to write cmap w!! w !sudo tee % >/dev/null " Move 10 lines with Option key nmap 10j nmap 10k " Insert blank lines without entering insert mode nnoremap m`o`` nnoremap m`O`` nmap m @a nnoremap :e function! PreservePosition(command) " Preparation: save last search, and cursor position. let _s=@/ let l = line(".") let c = col(".") " Do the business: execute a:command " Clean up: restore previous search history, and cursor position let @/=_s call cursor(l, c) endfunction