" set shell=/bin/sh 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" echo '!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 '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 'msanders/snipmate.vim' " Snippets 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 'junegunn/rainbow_parentheses.vim' " Color matched parenthesis Plug 'tpope/vim-commentary' " Commenting " Language Plug 'dag/vim-fish' " Fish Shell Support Plug 'tpope/vim-rails' " Rails integration Plug 'mattn/emmet-vim' " ZenCoding " Syntax Plug 'scrooloose/syntastic' " Syntax checker Plug 'sheerun/vim-polyglot' " Language Support Bundle " Plug 'evanmiller/nginx-vim-syntax' " Nginx Syntax " Plug 'leshill/vim-json' " JSON support " Plug 'slim-template/vim-slim' " SLIM Markup Syntax " Plug 'pangloss/vim-javascript' " Vim Javascript support " Plug 'kennethzfeng/vim-raml' " RAML Bindings " Plug 'digitaltoad/vim-jade' " JADE bindings " Plug 'mxw/vim-jsx' " JSX " Plug 'tmux-plugins/vim-tmux' " tmux.conf call plug#end() if empty(glob(vim_files . '/plugged')) PlugInstall endif endif syntax on "enable syntax hightlighting set autoindent "enable autoindent set autoread "automatically reload files set encoding=utf-8 "set encoding set hidden "enable multiple dirty buffers set laststatus=2 "show 2 status lines set modelines=0 set nocompatible set number "show line numbers set visualbell set wildmenu "show autocomplete menu set wildmode=full "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 augroup END "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 javascript "Custom mappings au! autocmd FileType javascript set ai sw=2 sts=2 et autocmd BufRead *.js nmap f* :call JsFunctionLookup()zz "autocmd BufRead *.js,*.jsx let g:syntastic_javascript_checkers = ['eslint'] map jj :set ft=javascript.jsx 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 ' ] endif endfunction augroup END endif " Set up CtrlP with faster alternative, if possible if(executable('ag')) let g:ctrlp_user_command = 'ag %s -i --nocolor --nogroup --hidden \ --ignore .git \ -g ""' endif "open config with \r nmap r :e $MYVIMRC nmap T :TagbarToggle nmap qt :QuickfixsignsToggle nmap qq :QuickfixsignsSet nmap w :up imap w :upa cmap w!! w !sudo tee % >/dev/null "Remove search highlight when is pressed nnoremap :nohlsearch "highlight search results set hlsearch "ignore capitalization set ignorecase set smartcase "highlight current line set cursorline "show whitespace "set list set listchars=tab:▸\ ,eol:¬ "Invisible character colors highlight NonText guifg=#4a4a59 highlight SpecialKey guifg=#4a4a59 "toggle whitespace nmap l :set list! noremap R :! echo reload \| nc localhost 32000 "tab settings set shiftwidth=4 set tabstop=4 set expandtab "set sane backspace behaviour set backspace=2 "No more arrow keys nnoremap nnoremap nnoremap nnoremap "inoremap "inoremap "inoremap "inoremap "move up and down within virtual lines nnoremap j gj nnoremap k gk "press jk in quick succession for esc key imap jk "press space in normal mode to center screen nmap zz nmap ] :bn nmap [ :bp nmap d :bd if($ConEmuANSI == 'ON' && !has("gui_running")) set term=xterm set t_Co=256 let &t_AB="\e[48;5;%dm" let &t_AF="\e[38;5;%dm" inoremap [62~ inoremap [63~ nnoremap [62~ nnoremap [63~ endif if has("gui_running") set go-=mTr " disable toolbar, menubar and scrollbar if has("win32") set guifont=Source_Code_Pro:h12:cANSI endif else set mouse=a endif colorscheme hybrid let g:airline_powerline_fonts = 1 let g:airline#extensions#tabline#enabled = 1 if exists("g:loaded_syntastic_checker") nmap c :SyntasticCheck nmap e :Errors endif set wildignore+=*/Deploy/*,*/node_modules/*,*/build/*,*/lib/*,*/jspm_packages/* set completeopt=longest,menu,menuone