|  | " Use Vim settings, rather then Vi settings (much better!). | 
        
          |  | " This must be first, because it changes other options as a side effect. | 
        
          |  | set nocompatible | 
        
          |  |  | 
        
          |  | " ================ General Config ==================== | 
        
          |  |  | 
        
          |  | set number                      "Line numbers are good | 
        
          |  | set backspace=indent,eol,start  "Allow backspace in insert mode | 
        
          |  | set history=1000                "Store lots of :cmdline history | 
        
          |  | set showcmd                     "Show incomplete cmds down the bottom | 
        
          |  | set showmode                    "Show current mode down the bottom | 
        
          |  | set gcr=a:blinkon0              "Disable cursor blink | 
        
          |  | set visualbell                  "No sounds | 
        
          |  | set autoread                    "Reload files changed outside vim | 
        
          |  |  | 
        
          |  | " This makes vim act like all other editors, buffers can | 
        
          |  | " exist in the background without being in a window. | 
        
          |  | " http://items.sjbach.com/319/configuring-vim-right | 
        
          |  | set hidden | 
        
          |  |  | 
        
          |  | "turn on syntax highlighting | 
        
          |  | syntax on | 
        
          |  |  | 
        
          |  | " Change leader to a comma because the backslash is too far away | 
        
          |  | " That means all \x commands turn into ,x | 
        
          |  | " The mapleader has to be set before vundle starts loading all | 
        
          |  | " the plugins. | 
        
          |  | let mapleader="," | 
        
          |  |  | 
        
          |  | " ================ Turn Off Swap Files ============== | 
        
          |  |  | 
        
          |  | set noswapfile | 
        
          |  | set nobackup | 
        
          |  | set nowb | 
        
          |  |  | 
        
          |  | " ================ Persistent Undo ================== | 
        
          |  | " Keep undo history across sessions, by storing in file. | 
        
          |  | " Only works all the time. | 
        
          |  | " NOT WORKING: Didnt work when yanked right out of YADR | 
        
          |  | "silent !mkdir ~/.vim/backups > /dev/null 2>&1 | 
        
          |  | "set undodir=~/.vim/backups | 
        
          |  | "set undofile | 
        
          |  |  | 
        
          |  | " ================ Indentation ====================== | 
        
          |  |  | 
        
          |  | set autoindent | 
        
          |  | set smartindent | 
        
          |  | set smarttab | 
        
          |  | set shiftwidth=4 | 
        
          |  | set softtabstop=4 | 
        
          |  | set tabstop=4 | 
        
          |  | set expandtab | 
        
          |  |  | 
        
          |  | filetype plugin on | 
        
          |  | filetype indent on | 
        
          |  |  | 
        
          |  | " Display tabs and trailing spaces visually | 
        
          |  | set list listchars=tab:\ \ ,trail:· | 
        
          |  |  | 
        
          |  | set wrap       "Wrap lines | 
        
          |  | set linebreak    "Wrap lines at convenient points | 
        
          |  |  | 
        
          |  | " ================ Completion ======================= | 
        
          |  |  | 
        
          |  | set wildmode=list:longest | 
        
          |  | set wildmenu                "enable ctrl-n and ctrl-p to scroll thru matches | 
        
          |  | set wildignore=*.o,*.obj,*~ "stuff to ignore when tab completing | 
        
          |  | set wildignore+=*vim/backups* | 
        
          |  | set wildignore+=*sass-cache* | 
        
          |  | set wildignore+=*DS_Store* | 
        
          |  | set wildignore+=vendor/rails/** | 
        
          |  | set wildignore+=vendor/cache/** | 
        
          |  | set wildignore+=*.gem | 
        
          |  | set wildignore+=log/** | 
        
          |  | set wildignore+=tmp/** | 
        
          |  | set wildignore+=*.png,*.jpg,*.gif | 
        
          |  |  | 
        
          |  | " ================ Scrolling ======================== | 
        
          |  |  | 
        
          |  | set scrolloff=8         "Start scrolling when we're 8 lines away from margins | 
        
          |  | set sidescrolloff=15 | 
        
          |  | set sidescroll=1 | 
        
          |  |  | 
        
          |  | " ======================================== | 
        
          |  | " Vim plugin configuration | 
        
          |  | " ======================================== | 
        
          |  | " | 
        
          |  | " This file contains the list of plugin installed using vundle plugin manager. | 
        
          |  | " Once you've updated the list of plugin, you can run vundle update by issuing | 
        
          |  | " the command :BundleInstall from within vim or directly invoking it from the | 
        
          |  | " command line with the following syntax: | 
        
          |  | " vim --noplugin -u vim/vundles.vim -N "+set hidden" "+syntax on" +BundleClean! +BundleInstall +qall | 
        
          |  | " Filetype off is required by vundle | 
        
          |  | filetype off | 
        
          |  |  | 
        
          |  | set rtp+=~/.vim/bundle/vundle/ | 
        
          |  | call vundle#rc() | 
        
          |  |  | 
        
          |  | " let Vundle manage Vundle (required) | 
        
          |  | Bundle "gmarik/vundle" | 
        
          |  |  | 
        
          |  | """"""""""""""""""""""""""""""""" MY VUNDLES """"""""""""""""""""""" | 
        
          |  | " HEAVILY/MOSTLY taken from https://github.com/skwp/dotfiles | 
        
          |  |  | 
        
          |  |  | 
        
          |  | " Make Git pervasive in vim ( :Gblame + Glog + many more ) | 
        
          |  | Bundle 'tpope/vim-fugitive' | 
        
          |  |  | 
        
          |  | " file navigator gutter | 
        
          |  | Bundle "scrooloose/nerdtree.git" | 
        
          |  |  | 
        
          |  | " awesome syntax highlighting | 
        
          |  | " TODO: Figure out how to enable correctly for Ruby. | 
        
          |  | Bundle 'scrooloose/syntastic' | 
        
          |  |  | 
        
          |  | " Command+T replacement (ctrl+P) | 
        
          |  | Bundle 'kien/ctrlp.vim' | 
        
          |  |  | 
        
          |  | " Rails plugin ( :A mapping! ) | 
        
          |  | Bundle "tpope/vim-rails.git" | 
        
          |  |  | 
        
          |  | " comment lines out (gc in visual mode) | 
        
          |  | Bundle "tomtom/tcomment_vim.git" | 
        
          |  |  | 
        
          |  | " Make it look amazing | 
        
          |  | Bundle 'altercation/vim-colors-solarized' | 
        
          |  |  | 
        
          |  | " Pimped out bar at the bottom of current buffer | 
        
          |  | Bundle "bling/vim-airline.git" | 
        
          |  |  | 
        
          |  | " Highlights class names + methods more brightly | 
        
          |  | " Handy for seeing syntax shape before your eyes | 
        
          |  | Bundle "vim-scripts/TagHighlight.git" | 
        
          |  |  | 
        
          |  | " Search everything in the current dir via :Ack | 
        
          |  | Bundle "mileszs/ack.vim" | 
        
          |  |  | 
        
          |  | " Enable Markdown Preview + GitHub flavored markdown | 
        
          |  | Bundle "jtratner/vim-flavored-markdown.git" | 
        
          |  | Bundle "nelstrom/vim-markdown-preview" | 
        
          |  |  | 
        
          |  | " TODO: Figure out how to do indents intelligently | 
        
          |  | " Bundle "austintaylor/vim-indentobject" | 
        
          |  |  | 
        
          |  | " Open a shell within vim via :ConqueTerm | 
        
          |  | Bundle "skwp/vim-conque" | 
        
          |  |  | 
        
          |  | " Syntax highlighting for .bats files | 
        
          |  | Bundle 'rosstimson/bats.vim' | 
        
          |  |  | 
        
          |  | " Open up a bash shell quickly in the current window | 
        
          |  | map <Leader>s <esc>:ConqueTermSplit bash<cr> | 
        
          |  |  | 
        
          |  | " Make Ctrl+w o, function with toggle niceness | 
        
          |  | Bundle "vim-scripts/ZoomWin" | 
        
          |  |  | 
        
          |  | Bundle 'kchmck/vim-coffee-script' | 
        
          |  |  | 
        
          |  | " requires exuberant ctags | 
        
          |  | Bundle 'majutsushi/tagbar' | 
        
          |  |  | 
        
          |  | " END OF VUNDLE PLUGINS | 
        
          |  | """""""""""""""""""""""""""""""""""""""""""""""" | 
        
          |  | filetype plugin indent on     " required! | 
        
          |  | " | 
        
          |  | " Brief help | 
        
          |  | " :BundleList          - list configured bundles | 
        
          |  | " :BundleInstall(!)    - install(update) bundles | 
        
          |  | " :BundleSearch(!) foo - search(or refresh cache first) for foo | 
        
          |  | " :BundleClean(!)      - confirm(or auto-approve) removal of unused bundles | 
        
          |  | " | 
        
          |  | " see :h vundle for more details or wiki for FAQ | 
        
          |  | " NOTE: comments after Bundle command are not allowed.. | 
        
          |  |  | 
        
          |  | " Color theme (drawing from altercation/vim-colors-solarized Bundle) | 
        
          |  | syntax enable | 
        
          |  | set background=dark | 
        
          |  | colorscheme solarized | 
        
          |  | color solarized | 
        
          |  |  | 
        
          |  | " For MacVim | 
        
          |  | set guifont=Monaco:h16 | 
        
          |  |  | 
        
          |  |  | 
        
          |  | " NERDTree Mappins | 
        
          |  | " Open Nerd Tree with <Leader>n | 
        
          |  | map <Leader>n <esc>:NERDTreeToggle<cr> | 
        
          |  |  | 
        
          |  | " Reveal current file in NERDTree with <Leader>r | 
        
          |  | map <Leader>r <esc>:NERDTreeFind<cr> | 
        
          |  |  | 
        
          |  | " ===== SYNTASTIC | 
        
          |  | "mark syntax errors with :signs | 
        
          |  | let g:syntastic_enable_signs=1 | 
        
          |  | "automatically jump to the error when saving the file | 
        
          |  | let g:syntastic_auto_jump=0 | 
        
          |  | "show the error list automatically | 
        
          |  | let g:syntastic_auto_loc_list=1 | 
        
          |  | "don't care about warnings | 
        
          |  | let g:syntastic_quiet_warnings=0 | 
        
          |  |  | 
        
          |  | " Coffee Script Compilation | 
        
          |  | " Compile the current file into a vertcally split screen | 
        
          |  | map <Leader>cs <esc>:CoffeeCompile vert<cr> | 
        
          |  |  | 
        
          |  | " ====== Make tabs be addressable via Apple+1 or 2 or 3, etc | 
        
          |  | " Use numbers to pick the tab you want (like iTerm) | 
        
          |  | map <silent> <D-1> :tabn 1<cr> | 
        
          |  | map <silent> <D-2> :tabn 2<cr> | 
        
          |  | map <silent> <D-3> :tabn 3<cr> | 
        
          |  | map <silent> <D-4> :tabn 4<cr> | 
        
          |  | map <silent> <D-5> :tabn 5<cr> | 
        
          |  | map <silent> <D-6> :tabn 6<cr> | 
        
          |  | map <silent> <D-7> :tabn 7<cr> | 
        
          |  | map <silent> <D-8> :tabn 8<cr> | 
        
          |  | map <silent> <D-9> :tabn 9<cr> | 
        
          |  |  | 
        
          |  | " ===== Add some shortcuts for ctags | 
        
          |  | map <Leader>tt <esc>:TagbarToggle<cr> | 
        
          |  | " TODO later, get open tag in new tab working | 
        
          |  | " http://stackoverflow.com/questions/563616/vim-and-ctags-tips-and-tricks | 
        
          |  | " map <C-\>:tab split<CR>:exec("tag ".expand("<cword>"))<CR> | 
        
          |  | "map <A-]>:vsp <CR>:exec("tag ".expand("<cword>"))<CR> | 
        
          |  |  | 
        
          |  | " Support for github flavored markdown | 
        
          |  | " via https://github.com/jtratner/vim-flavored-markdown | 
        
          |  | " with .md extensions | 
        
          |  | augroup markdown | 
        
          |  | au! | 
        
          |  | au BufNewFile,BufRead *.md,*.markdown setlocal filetype=ghmarkdown | 
        
          |  | augroup END |