"----------------------------------------------------------------------------------------------------------------------- " Vundle Settings "----------------------------------------------------------------------------------------------------------------------- set nocompatible " be iMproved filetype off " required! set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() "Plugins "General vim Plugins Plugin 'nathanaelkane/vim-indent-guides' Plugin 'scrooloose/nerdtree' Plugin 'scrooloose/nerdcommenter' Plugin 'jistr/vim-nerdtree-tabs' Plugin 'tpope/vim-fugitive' Plugin 'tpope/vim-unimpaired' Plugin 'terryma/vim-multiple-cursors' Plugin 'scrooloose/syntastic' Plugin 'joonty/vdebug' Plugin 'kien/ctrlp.vim' Plugin 'Lokaltog/vim-easymotion' Plugin 'Shougo/unite.vim' Plugin 'SirVer/ultisnips' Plugin 'honza/vim-snippets' Plugin 'ervandew/supertab' Plugin 'tsukkee/unite-tag' Plugin 'gcmt/taboo.vim' Plugin 'tpope/vim-surround' Plugin 'mattn/emmet-vim' Plugin 'tmhedberg/matchit' Plugin 'shawncplus/phpcomplete.vim' Plugin 'StanAngeloff/php.vim' Plugin 'octol/vim-cpp-enhanced-highlight' Plugin 'stephpy/vim-yaml' Plugin 'hdima/python-syntax' Plugin 'vim-scripts/pep8' Plugin 'fs111/pydoc.vim' Plugin 'davidhalter/jedi-vim' Plugin 'godlygeek/tabular' Plugin 'plasticboy/vim-markdown' call vundle#end() filetype plugin indent on " required! " Autocomplete set omnifunc=syntaxcomplete#Complete "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " Theme Colors "----------------------------------------------------------------------------------------------------------------------- " Solarized cterm colors " 0 = almost dark blue // 1 = red " 2 = green // 3 = yellow " 4 = light blue // 5 = pink " 6 = cyan // 7 = beige " 8 = dark blue // 9 = orange " 10 = dark grey // 11 = grey " 12 = light grey // 13 = purple " 14 = grey // 15 = white " 16 = black "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " Module Fixes "--------------------------------------------------- " vdebug window height plugin/python/vdebug/ui/vimui.py to 50 line 62 "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " Vim Settings "----------------------------------------------------------------------------------------------------------------------- let mapleader="\\" syntax on "let g:solarized_termcolors=16 let g:solarized_termtrans=1 set background=dark colorscheme solarized set expandtab "Expand tabs into spaces set tabstop=4 "Number of spaces that counts for set shiftwidth=4 "Number of space for each (auto)indent set textwidth=0 "Maximium width of text that is being inserted. 0 disables it set history=200 "Set history of : commands set autoindent "Copy the indentation from the previous line set number "Show line numbers set splitright "Vertical splits go to the right set splitbelow "Horizontal splits go beneath set incsearch "Show search results as they are being typed set nowrap "Turn off TextWrapping set completeopt=longest,menuone "Autocomplete options set wildmode=longest,list "Completion mode for wildchar set backspace=indent,eol,start "Backspace over everything in insert mode set laststatus=2 "Show the status bar always set clipboard=unnamed "Set clipboard to use system clipboard on mac set wildignore=*/app/cache,*/vendor,*/env,*.pyc "Ignore useless files :command! W w "Save functions for accidental uppercases :command! Q q :command! Wq wq "Highlighting in vim leaves your cursor wherever you ended at :vmap y ygv "Stops flashing from command above and helps save on processing set lazyredraw "Vim diff commands nnoremap du :diffupdate nnoremap dd :diffget nnoremap df :diffput nnoremap - [c nnoremap = ]c "File ident on xml files au FileType xml setlocal equalprg=xmllint\ --format\ --recover\ -\ 2>/dev/null "Formating a json file com! Formatjson %!python -m json.tool " Search for word under cursor nmap * yiw/0 "Command for figuring out highlight group map ,hi :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">" . " FG:" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"fg#") "Twig Syntax au BufRead,BufNewFile *.twig set filetype=htmljinja au BufRead,BufNewFile *.html set filetype=htmljinja "Make sure yml are set as yaml au BufNewFile,BufRead *.yml set filetype=yaml au BufNewFile,BufRead *.sls set filetype=yaml " Set drupal files as php au BufNewFile,BufRead *.inc set filetype=php au BufNewFile,BufRead *.module set filetype=php " Get out of visual mode faset imap jj " Faster saving noremap w :update " Faster quiting noremap q :quit " Visually select pasted text nnoremap gp `[v`] " Python indent autocmd FileType python set tabstop=4|set shiftwidth=4 autocmd FileType htmljinja set tabstop=2|set shiftwidth=2 autocmd FileType sh set tabstop=2|set shiftwidth=2 autocmd FileType css set tabstop=2|set shiftwidth=2 " Stubs open :command! ST tabnew ~/.stubs/index.markdown " Clean MS Quotes :command! QUOTES :%s/”\|“/"/g " Yank withouth newlinw nmap yY ^y$ "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " Backup Directories set backupdir-=. set backupdir+=. set backupdir-=~/ set backupdir^=~/.vim/vim-files/backups/ set backup set directory=~/.vim/vim-files/swaps/ "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " Window Navigation Remaps nnoremap nnoremap nnoremap nnoremap nnoremap "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " Color/Theming Options "----------------------------------------------------------------------------------------------------------------------- " Highlight for searching (Light Background) "hi Search guibg=Green guifg=Black "hi Search cterm=NONE ctermfg=Black ctermbg=Green " Highlight for searching (Dark Background) "hi Search guibg=White guifg=Red "hi Search cterm=NONE ctermfg=Red ctermbg=White " Vim diff Colors highlight DiffAdd cterm=NONE ctermfg=0 ctermbg=2 highlight DiffDelete cterm=NONE ctermfg=0 ctermbg=1 highlight DiffChange cterm=NONE ctermfg=0 ctermbg=6 highlight DiffText cterm=NONE ctermfg=0 ctermbg=6 " Highligh current cursorline hi CursorLineNR cterm=bold ctermfg=226 " Status line options set statusline= set statusline+=%1*\ %02c\ "Colnr set statusline+=%2*\ » "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK set statusline+=%3*\ %<%F\ "File+path set statusline+=%2*\« set statusline+=%2*\ %=\ %l/%L\ (%02p%%)\ "Rownumber/total (%) " Status line colors per mode hi User1 ctermfg=226 ctermbg=8 cterm=bold hi User3 ctermfg=4 ctermbg=0 hi User2 ctermfg=6 ctermbg=0 "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " Nerdtree Plugin "----------------------------------------------------------------------------------------------------------------------- let NERDTreeShowLineNumbers=1 nnoremap n :NERDTreeTabsToggle let NERDTreeDirArrows=0 let NERDTreeMapOpenSplit = 's' let NERDTreeMapOpenVSplit = 'v' let NERDTreeWinSize = 40 let NERDTreeIgnore = ['\.pyc$'] "----------------------------------------------------------------------------------------------------------------------- " Emmet Plugin "----------------------------------------------------------------------------------------------------------------------- let g:use_emmet_complete_tag = 1 "----------------------------------------------------------------------------------------------------------------------- " Indent Lines Plugin "----------------------------------------------------------------------------------------------------------------------- let g:indent_guides_enable_on_vim_startup = 1 let g:indent_guides_auto_colors = 0 let g:indent_guides_exclude_filetypes =['help', 'nerdtree'] let g:indent_guides_start_level = 2 let g:indent_guides_guide_size = 1 " Indent Lines light background "autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd ctermbg=7 "autocmd VimEnter,Colorscheme * :hi IndentGuidesEven ctermbg=7 " Indent Line dark background autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd ctermbg=0 autocmd VimEnter,Colorscheme * :hi IndentGuidesEven ctermbg=0 "----------------------------------------------------------------------------------------------------------------------- " Easymotion Plugin "----------------------------------------------------------------------------------------------------------------------- hi link EasyMotionTarget ErrorMsg hi link EasyMotionTarget2First ErrorMsg hi link EasyMotionTarget2Second ErrorMsg hi link EasyMotionShade Comment hi EasyMotionTarget ctermbg=none ctermfg=1 cterm=bold "let g:EasyMotion_do_shade = 0 nnoremap \ map (easymotion-prefix) map r (easymotion-repeat) nmap s (easymotion-repeat) let g:EasyMotion_startofline = 0 " keep cursor colum when JK motion map / (easymotion-sn) omap / (easymotion-tn) map n (easymotion-next) map N (easymotion-prev) "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " Vdebug Plugin "----------------------------------------------------------------------------------------------------------------------- let g:vdebug_options = { \ "watch_window_style" : 'compact', \ "port" : 9000, \ "path_maps" : {"/vagrant": "/Users/codyhiar/Sites"}, \} "Delete all breakpoints :command! BR BreakpointRemove * "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " Unite Plugin "----------------------------------------------------------------------------------------------------------------------- let g:unite_enable_start_insert = 1 let g:unite_split_rule = "botright" let g:unite_force_overwrite_statusline = 0 let g:unite_winheight = 10 let g:unite_source_history_yank_enable = 1 let g:unite_source_rec_max_cache_files=5000 " Check to see if the plugin is loaded before callinging if exists('g:loaded_unite') call unite#custom_source('file_rec,file_rec/async,file_mru,file,buffer,grep', \ 'ignore_pattern', join([ \ '\.git/', \ ], '\|')) call unite#filters#matcher_default#use(['matcher_fuzzy']) call unite#filters#sorter_default#use(['sorter_rank']) endif nnoremap s :Unite -buffer-name=buffer buffer -winheight=40 nnoremap y :Unite -buffer-name=yank history/yank -winheight=40 " Custom mappings for the unite buffer autocmd FileType unite call s:unite_settings() function! s:unite_settings() " Enable navigation with control-j and control-k in insert mode let b:SuperTabDisabled=1 imap (unite_select_next_line) imap (unite_select_previous_line) imap unite#do_action('split') imap unite#do_action('vsplit') imap unite#do_action('tabopen') endfunction "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " CtrlP Plugin "----------------------------------------------------------------------------------------------------------------------- let g:ctrlp_working_path_mode = 'a' let g:ctrlp_by_filename = 1 let g:ctrlp_status_func = { \ 'main': 'CtrlP_main_status', \ 'prog': 'CtrlP_progress_status', \ } " Arguments: focus, byfname, s:regexp, prv, item, nxt, marked " a:1 a:2 a:3 a:4 a:5 a:6 a:7 fu! CtrlP_main_status(...) let regex = a:3 ? '%#CtrlP_Violet#regex %*' : '' let prv = '%#CtrlP_Purple# '.a:4.' %*' let item = '%#CtrlP_IPurple# '.a:5.' %*' let nxt = '%#CtrlP_Purple# '.a:6.' %*' let byfname = '%#CtrlP_Violet# '.a:2.' %*' let dir = '%#CtrlP_Purple# '.fnamemodify(getcwd(), ':~').' %*' retu prv . item . nxt . '%#CtrlP_Violet#%=%*%<' . byfname . regex . dir endf fu! CtrlP_progress_status(...) let len = '%#Function# '.a:1.' %*' let dir = ' %=%<%#LineNr# '.getcwd().' %*' retu len.dir endf hi CtrlP_Purple ctermfg=7 ctermbg=4 hi CtrlP_IPurple ctermfg=4 ctermbg=7 hi CtrlP_Violet ctermfg=4 ctermbg=8 "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " SuperTab Plugin "----------------------------------------------------------------------------------------------------------------------- let g:SuperTabMappingForward = '' let g:SuperTabMappingBackward = '' let g:SuperTabLongestHighlight = 0 let g:SuperTabDefaultCompletionType = "" "au FileType python set omnifunc=pythoncomplete#Complete "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " Ultisnips "----------------------------------------------------------------------------------------------------------------------- let g:UltiSnipsEditSplit="vertical" let g:UltiSnipsListSnippets="" let g:UltiSnipsExpandTrigger="" let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsJumpBackwardTrigger="" :command! SNIPS tabnew ~/.vim/bundle/vim-snippets/snippets "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " Unite Tag "----------------------------------------------------------------------------------------------------------------------- autocmd BufEnter * \ if empty(&buftype) \| nnoremap :UniteWithCursorWord -immediately tag \| endif let g:unite_source_tag_max_name_length = 80 let g:unite_source_tag_max_fname_length = 80 "----------------------------------------------------------------------------------------------------------------------- "----------------------------------------------------------------------------------------------------------------------- " Fugtive "----------------------------------------------------------------------------------------------------------------------- nnoremap gs :Gstatus nnoremap gc :Gcommit nnoremap gl :Glog "----------------------------------------------------------------------------------------------------------------------- " Python-Syntax "----------------------------------------------------------------------------------------------------------------------- let python_highlight_all = 1 "----------------------------------------------------------------------------------------------------------------------- " PEP8 Plugin "----------------------------------------------------------------------------------------------------------------------- let g:pep8_map='' "----------------------------------------------------------------------------------------------------------------------- " Jedi "----------------------------------------------------------------------------------------------------------------------- let g:jedi#popup_on_dot = 0 let g:jedi#usages_command = 0 let g:jedi#rename_command = 0 "----------------------------------------------------------------------------------------------------------------------- " Syntastic "----------------------------------------------------------------------------------------------------------------------- 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 "----------------------------------------------------------------------------------------------------------------------- " Markdown "----------------------------------------------------------------------------------------------------------------------- let g:vim_markdown_folding_disabled=1