scriptencoding utf-8 set encoding=utf-8 set shortmess=I "turn off splash screen let vim_files=fnamemodify(resolve(expand("$MYVIMRC")), ":p:h") let plug_path=expand(vim_files . '/autoload/plug.vim') let have_plug=filereadable(plug_path) if(!have_plug && executable('curl')) echo "Installing Plug" execute '!curl -fLo "' . plug_path . '" --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' endif if(have_plug) call plug#begin(vim_files . '/plugged') Plug 'tpope/vim-sensible' " Sensible defaults for vim Plug 'w0ng/vim-hybrid' " Hybrid colorscheme Plug 'vim-airline/vim-airline' " Status bar Plug 'vim-airline/vim-airline-themes' " Status bar themes " Plug 'gregsexton/gitv' " GitK for Fugitive Plug 'ivyl/vim-bling' " blink search results Plug 'ctrlpvim/ctrlp.vim' " Fuzzy search " Plug 'majutsushi/tagbar' " Ctags integration " Plug 'marcweber/vim-addon-mw-utils' | " Plug 'tomtom/tlib_vim' | " Plug 'garbas/vim-snipmate' " Snippets " Plug 'honza/vim-snippets' " Default snippet collection Plug 'tommcdo/vim-lion' " Align stuff Plug 'tpope/vim-fugitive' " Work with git repos Plug 'tpope/vim-surround' " Surround with quotes Plug 'rking/ag.vim' " Silver Searcher Support Plug 'tpope/vim-commentary' " Commenting " Plug 'mtth/scratch.vim' " Scratch Buffer " Plug 'vimwiki/vimwiki' " http://vimwiki.github.io/ " Language Plug 'dag/vim-fish' " Fish Shell Support " Plug 'tpope/vim-rails' " Rails integration Plug 'mattn/emmet-vim' " ZenCoding Plug 'sheerun/vim-polyglot' " Language Support Bundle Plug 'sbdchd/neoformat' " Automatic code formatting if version >= 800 Plug 'maralla/validator.vim' " Async syntax checker Plug 'maralla/completor.vim', { 'do': 'make js' } " Code completion endif call plug#end() if empty(glob(vim_files . '/plugged')) PlugInstall endif endif set hidden "enable multiple dirty buffers set modelines=0 set nocompatible set number "show line numbers set visualbell set wildmode=full set background=dark silent! colorscheme hybrid "Set before any key remapping let mapleader = '\' "Javascript Function lookup function! JsFunctionLookup() let l:Name = expand("") execute "/function ".l:Name endfun function! StripTrailingWhitespace() let pos = getpos('.') %s/\s\+$//e call setpos('.', pos) endfun if has("autocmd") filetype plugin indent on augroup CleanWhitespace au! autocmd BufWritePre * :call StripTrailingWhitespace() augroup END augroup InsertTimer au! "Autoexit to normal mode after 15 seconds of inactivity autocmd CursorHoldI * stopinsert autocmd InsertEnter * let updaterestore=&updatetime | set updatetime=15000 autocmd InsertLeave * let &updatetime=updaterestore augroup END augroup vimrc "Automatically reload VIMRC file after saving au! autocmd bufwritepost $MYVIMRC source $MYVIMRC if (exists('g:loaded_airline') && g:loaded_airline) autocmd bufwritepost $MYVIMRC AirlineRefresh endif augroup END augroup diffmode au! "Mappings for diff mode autocmd filterwritepre * if &diff | map { :diffget LOCAL| endif autocmd filterwritepre * if &diff | map \| :diffget BASE| endif autocmd filterwritepre * if &diff | map } :diffget REMOTE| endif augroup END augroup javascript "Custom mappings au! autocmd FileType javascript set ai sw=2 sts=2 et autocmd FileType javascript map jj :set ft=javascript.jsx " autocmd BufRead *.js nmap f* :call JsFunctionLookup()zz autocmd BufRead *.js,*.jsx let g:syntastic_javascript_checkers = ['eslint'] autocmd BufWritePre *.js Neoformat let g:neoformat_javascript_prettier = { \ 'exe' : 'prettier', \ 'args': ['--stdin', '--trailing-comma=es5'], \ 'stdin': 1 \ } augroup END augroup ruby au! autocmd FileType ruby,haml,eruby,yaml,html,sass,cucumber,slim set ai sw=2 sts=2 et autocmd BufRead *.rb let g:syntastic_ruby_checkers = ['rubocop', 'mri'] autocmd BufRead *.rb let g:syntastic_ruby_rubocop_exec = '/usr/bin/rubocop' augroup END augroup html au! au BufNewFile,BufRead *.ejs set filetype=html autocmd FileType html call SetHtmlOptions() function! SetHtmlOptions() if(executable('tidy')) let g:syntastic_html_tidy_ignore_errors = [ ' proprietary attribute "property"', ' proprietary attribute "prefix"', 'trimming empty ', 'trimming empty ', '