" -- BEGIN: Vundle config -- set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " The following are examples of different formats supported. " Keep Plugin commands between vundle#begin/end. " Displays git information in airline. Plugin 'tpope/vim-fugitive' Plugin 'Raimondi/delimitMate' " Autocompletion Plugin 'Valloric/YouCompleteMe' " Displays git-tracked C*UD ops within gutter. Plugin 'airblade/vim-gitgutter' Plugin 'kien/ctrlp.vim' Plugin 'mileszs/ack.vim' Plugin 'pangloss/vim-javascript' Plugin 'scrooloose/nerdtree' Plugin 'scrooloose/syntastic' " Themes Plugin 'sickill/vim-monokai' Plugin 'altercation/vim-colors-solarized' " Executes shell commands and pipes output into new Vim buffer. Plugin 'sjl/clam.vim' " Multiple cursors for simultaneous edits. " NOTE: use to run miltiple cursors not Plugin 'terryma/vim-multiple-cursors' " Visualize buffers Plugin 'vim-airline/vim-airline' Plugin 'vim-airline/vim-airline-themes' call vundle#end() " required filetype plugin indent on " required " Put your non-Plugin stuff after this line " -- END: Vundle config -- " Airline Settings " Enables the list of buffers. let g:airline#extensions#tabline#enabled = 1 " Shows the filename only. let g:airline#extensions#tabline#fnamemod = ':t' " Allow glyphs in airline let g:airline_powerline_fonts = 1 " It's the twenty-first century...no swaps. set noswapfile " Changes to character. let mapleader = " " " Supports mouse interaction. set mouse=a " backspace settings set backspace=2 set backspace=indent,eol,start " Javascript specific variables let g:javascript_plugin_jsdoc = 1 " set foldmethod=syntax " GlobalListchars set list set listchars=eol:¶,trail:~,nbsp:␣ " Keeps everything concealed at all times. Even when cursor is on the word. set conceallevel=1 set concealcursor=nvic " JavaScript thanks to pangloss/vim-javascript " let g:javascript_conceal_function = "ƒ" " match ErrorMsg /ƒ/ " Ultisnips " Track the engine. Plugin 'SirVer/ultisnips' " Snippets are separated from the engine. Add this if you want them: Plugin 'honza/vim-snippets' " Trigger configuration. Do not use if you use https://github.com/Valloric/YouCompleteMe. let g:UltiSnipsExpandTrigger="" " let g:UltiSnipsJumpForwardTrigger="" " let g:UltiSnipsJumpBackwardTrigger="" " Conventional Emacs line-editor defaults inoremap I inoremap A " Manage Vertical and Horizontal splits nnoremap vs :vs nnoremap vv :vs nnoremap sp :sp nnoremap ss :sp " Buffer creation and management " Buffer movement nnoremap :1bnext nnoremap :1bprevious " Buffer creation nnoremap :enew " Buffer deletion nnoremap bq :bp bd # " make Y do what is intuitive given: " D: deletes until EOL " C: changes until EOL nnoremap Y y$ " flip number keys to their shift+ counterparts nnoremap t1 t! nnoremap t2 t@ nnoremap t3 t# nnoremap t4 t$ nnoremap t5 t% nnoremap t6 t^ nnoremap t7 t& nnoremap t8 t* nnoremap t9 t( nnoremap t0 t) nnoremap T1 T! nnoremap T2 T@ nnoremap T3 T# nnoremap T4 T$ nnoremap T5 T% nnoremap T6 T^ nnoremap T7 T& nnoremap T8 T* nnoremap T9 T( nnoremap T0 T) nnoremap f1 f! nnoremap f2 f@ nnoremap f3 f# nnoremap f4 f$ nnoremap f5 f% nnoremap f6 f^ nnoremap f7 f& nnoremap f8 f* nnoremap f9 f( nnoremap f0 f) nnoremap F1 F! nnoremap F2 F@ nnoremap F3 F# nnoremap F4 F$ nnoremap F5 F% nnoremap F6 F^ nnoremap F7 F& nnoremap F8 F* nnoremap F9 F( nnoremap F0 F) " Karate edits nnoremap ca9 ca( nnoremap da9 da( nnoremap va9 va( nnoremap ca0 ca) nnoremap da0 da) nnoremap va0 va) nnoremap ci9 ci( nnoremap di9 di( nnoremap vi9 vi( nnoremap ci0 ci) nnoremap di0 di) nnoremap vi0 vi) " scrolling and maintaing mouse position nnoremap j nnoremap k " reload file after git changes nnoremap :e " -- Syntastic Settings -- set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%* let g:syntastic_always_populate_loc_list = 1 let g:syntastic_auto_loc_list = 1 let g:syntastic_check_on_open = 1 let g:syntastic_check_on_wq = 1 let g:syntastic_javascript_checkers = ['gjslint'] " Basic settings set number set tabstop=2 set expandtab set shiftwidth=2 syntax enable set background=dark colorscheme solarized set t_Co=255 " Support italics highlight Comment cterm=italic " Remove all characters until the end of the line inoremap lC " Define highlighting groups " NOTE: The ANSII aliases for colors will change when iTerm2 settings are " changed. highlight InterestingWord1 ctermbg=White ctermfg=Black highlight InterestingWord2 ctermbg=Blue ctermfg=Black highlight InterestingWord3 ctermbg=Magenta ctermfg=Black " h1 highlighting nnoremap 1 :execute 'match InterestingWord1 /\<\>/' nnoremap x1 :execute 'match none' " h2 highlighting nnoremap 2 :execute '2match InterestingWord2 /\<\>/' nnoremap x2 :execute '2match none' " h3 highlighting nnoremap 3 :execute '3match InterestingWord3 /\<\>/' nnoremap x3 :execute '3match none' "clear all highlighted groups nnoremap xx :execute 'match none' :execute '2match none' :execute '3match none' " pasteboard copy & paste nnoremap V"+y vnoremap "+y inoremap "+pa nnoremap o"+p vnoremap "+p " Manage 80 char line limits highlight OverLength ctermbg=White ctermfg=Black match OverLength /\%81v.\+/ set wrap! " Toggle word-wrapping nnoremap w :set wrap! " Resize split to 10,20,...,100 chars nnoremap 1 :vertical resize 10 nnoremap 2 :vertical resize 20 nnoremap 3 :vertical resize 30 nnoremap 4 :vertical resize 40 nnoremap 5 :vertical resize 50 nnoremap 6 :vertical resize 60 nnoremap 7 :vertical resize 70 nnoremap 8 :vertical resize 80 nnoremap 9 :vertical resize 90 nnoremap 0 :vertical resize 100 " map jj to imap jj " View Directory tree with ctrl + \ nnoremap :NERDTreeToggle " BOL and EOL nnoremap H ^ vnoremap H ^ nnoremap L $ vnoremap L $ " trim trailing whitespace on save autocmd BufWritePre *.{js,py,tpl,html} :%s/\s\+$//e " set default font and size set guifont=Operator\ Mono:h16 " CtrlP Config. set runtimepath^=~/.vim/bundle/ctrlp.vim " let g:ctrlp_map = '' let g:ctrlp_cmd = 'CtrlP' " Maps CtrlP to leader to future-proof config. nnoremap p :CtrlP " Fuzzy-finds files within cwd. " nnoremap pf :CtrlP " Fuzzy-finds files within open buffers. " nnoremap pb :CtrlPBuffer " Ignores dirs and files let g:ctrlp_custom_ignore = { \ 'dir': 'node_modules', \ 'file': '\v\.(exe|dll|png|jpg|jpeg)$' \}