" Leader let mapleader = " " set nocompatible " Use Vim settings, rather then Vi settings set backupcopy=yes set backspace=2 set autoread set autoindent set clipboard=unnamed set directory-=. set encoding=utf-8 set ignorecase set list set listchars=tab:▸\ ,trail:▫ set history=50 set ruler " show the cursor position all the time set showcmd " display incomplete commands set incsearch " do incremental searching set laststatus=2 " Always display the status line set smartcase set wildignore=log/**,node_submodules/**,target/**,tmp/**,*.rbc set wildmenu set hlsearch set notimeout set ttimeout set ttimeoutlen=50 set noshowmode set mouse=a " Switch syntax highlighting on, when the terminal has colors " Also switch on highlighting the last used search pattern. if (&t_Co > 2 || has("gui_running")) && !exists("syntax_on") syntax on endif " Declare bundles are handled via Vundle "set rtp+=~/.vim/bundle/vundle/ "call vundle#rc() "let g:vundle_default_git_proto = 'http' "let g:netrw_home=$HOME " Let Vundle manage Vundle "Bundle 'gmarik/vundle' call plug#begin('~/.vim/bundle') " Define bundles via Github repos Plug 'kchmck/vim-coffee-script' "Plug 'nanki/treetop.vim' "Plug 'timcharper/textile.vim' Plug 'tpope/vim-cucumber' Plug 'tpope/vim-endwise' Plug 'tpope/vim-fugitive' "Plug 'tpope/vim-haml' Plug 'tpope/vim-markdown' Plug 'tpope/vim-rails' Plug 'tpope/vim-surround' Plug 'tpope/vim-speeddating' Plug 'tpope/vim-bundler' Plug 'raysrashmi/vim-matchit' "Plug 'vim-scripts/ctags.vim' Plug 'vim-scripts/greplace.vim' "Plug 'vim-scripts/tComment' "Plug 'vim-scripts/taglist.vim' Plug 'xenoterracide/html.vim' Plug 'altercation/vim-colors-solarized' Plug 'lifepillar/vim-solarized8' Plug 'scrooloose/syntastic' Plug 'rstacruz/sparkup' Plug 'scrooloose/nerdtree' Plug 'kien/ctrlp.vim' Plug 'airblade/vim-gitgutter' Plug 'juvenn/mustache.vim' Plug 'nono/vim-handlebars' Plug 'austintaylor/vim-indentobject' Plug 'pangloss/vim-javascript' Plug 'rmanalan/jshint.vim' Plug 'vim-scripts/kwbdi.vim' Plug 'tpope/vim-pastie' Plug 'uarun/vim-protobuf' Plug 'tpope/vim-ragtag' Plug 'tpope/vim-repeat' Plug 'mileszs/ack.vim' Plug 'vim-ruby/vim-ruby' Plug 'msanders/snipmate.vim' Plug 'majutsushi/tagbar' Plug 'leafgarland/typescript-vim' Plug 'tpope/vim-unimpaired' Plug 'nathanaelkane/vim-indent-guides' Plug 'slim-template/vim-slim' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'tmux-plugins/vim-tmux-focus-events' Plug 'tmux-plugins/vim-tmux' " Plug 'christoomey/vim-tmux-navigator' Plug 'joshdick/onedark.vim' Plug 'sheerun/vim-polyglot' Plug 'dense-analysis/ale' packadd! dracula_pro call plug#end() filetype plugin indent on augroup vimrcEx au! " For all text files set 'textwidth' to 78 characters. autocmd FileType text setlocal textwidth=78 " When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid or when inside an event handler " (happens when dropping a file on gvim). autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif augroup END " Softtabs, 2 spaces set tabstop=2 set shiftwidth=2 set expandtab " Display extra whitespace set list listchars=tab:»·,trail:· " Local config if filereadable(".vimrc.local") source .vimrc.local endif " Use Ack instead of Grep when available if executable("ack") set grepprg=ack\ -H\ --nogroup\ --nocolor endif " Color scheme " if has('gui_running') set background=light else set background=dark endif set term=xterm-256color if exists('+termguicolors') let &t_8f = "\[38;2;%lu;%lu;%lum" let &t_8b = "\[48;2;%lu;%lu;%lum" set termguicolors endif "highlight NonText guibg=#060606 "highlight Folded guibg=#0A0A0A guifg=#9090D0 "highlight SignColumn ctermbg=8 let g:indent_guides_auto_colors = 0 autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd ctermbg=10 autocmd VimEnter,Colorscheme * :hi IndentGuidesEven ctermbg=0 " Numbers set number set numberwidth=5 " Snippets are activated by Shift+Tab let g:snippetsEmu_key = "" " Tab completion " will insert tab at beginning of line, " will use completion if not at beginning set wildmode=list:longest,list:full set complete=.,w,t function! InsertTabWrapper() let col = col('.') - 1 if !col || getline('.')[col - 1] !~ '\k' return "\" else return "\" endif endfunction inoremap =InsertTabWrapper() " Exclude Javascript files in :Rtags via rails.vim due to warnings when parsing let g:Tlist_Ctags_Cmd="ctags --exclude='*.js'" " Index ctags from any project, including those outside Rails map ct :!ctags -R . " Cucumber navigation commands autocmd User Rails Rnavcommand step features/step_definitions -glob=**/* -suffix=_steps.rb autocmd User Rails Rnavcommand config config -glob=**/* -suffix=.rb -default=routes " :Cuc my text (no quotes) -> runs cucumber scenarios containing "my text" command! -nargs=+ Cuc :!ack --no-heading --no-break | cut -d':' -f1,2 | xargs bundle exec cucumber --no-color autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif " Switch between the last two files nnoremap " Treat
  • and

    tags like the block tags they are let g:html_indent_tags = 'li\|p' " Markdown files end in .md au BufRead,BufNewFile *.md set filetype=markdown " Enable spellchecking for Markdown au BufRead,BufNewFile *.md setlocal spell " Automatically wrap at 80 characters for Markdown au BufRead,BufNewFile *.md setlocal textwidth=80 " rspec mappings map t :call RunCurrentSpecFile() map s :call RunNearestSpec() map l :call RunLastSpec() function! RunCurrentSpecFile() if InSpecFile() let l:command = "s " . @% . " -f documentation" call SetLastSpecCommand(l:command) call RunSpecs(l:command) endif endfunction function! RunNearestSpec() if InSpecFile() let l:command = "s " . @% . " -l " . line(".") . " -f documentation" call SetLastSpecCommand(l:command) call RunSpecs(l:command) endif endfunction function! RunLastSpec() if exists("t:last_spec_command") call RunSpecs(t:last_spec_command) endif endfunction function! InSpecFile() return match(expand("%"), "_spec.rb$") != -1 endfunction function! SetLastSpecCommand(command) let t:last_spec_command = a:command endfunction function! RunSpecs(command) execute ":w\|!clear && echo " . a:command . " && echo && " . a:command endfunction nmap I :IndentGuidesToggle nmap d :NERDTreeToggle nmap f :NERDTreeFind nmap b :CtrlPBuffer nmap t :CtrlP nmap T :CtrlPClearCache:CtrlP nmap ] :TagbarToggle nmap :call Strip_trailing() nmap g :GitGutterToggle nmap c Kwbd let g:ctrlp_match_window = 'order:ttb,max:20' let g:NERDSpaceDelims=1 let g:gitgutter_enabled = 1 let g:gitgutter_highlight_lines = 0 let g:gitgutter_realtime = 4000 set signcolumn=yes let g:airline_symbols = {} let g:airline_skip_empty_sections = 1 let g:airline_left_sep = '' let g:airline_left_alt_sep = '' let g:airline_right_sep = '' let g:airline_right_alt_sep = '' let g:airline_symbols.branch = '' let g:airline_symbols.readonly = '' let g:airline_symbols.linenr = '☰ ' let g:airline_symbols.maxlinenr = '' let g:airline_symbols.whitespace = '☲ ' let g:airline_symbols.notexists = ' Ɇ' let g:airline_symbols.dirty = ' ' let g:airline_symbols.crypt = '' let g:airline_theme = 'simple' let g:solarized_termtrans = 1 let g:solarized_extra_hi_groups = 1 let g:indent_guides_guide_size = 1 let g:indent_guides_enable_on_vim_startup = 1 let g:indent_guides_default_mapping = 0 let g:indent_guides_exclude_filetypes = ['help', 'nerdtree'] let g:dracula_colorterm = 1 let g:dracula_bold = 1 let g:dracula_italic = 1 let g:dracula_underline = 1 let g:dracula_undercurl = 1 let g:dracula_inverse = 1 set t_ku=OA set t_kd=OB set t_kr=OC set t_kl=OD " Use The Silver Searcher https://github.com/ggreer/the_silver_searcher if executable('ag') let g:ackprg = 'ag --nogroup --column' " Use Ag over Grep set grepprg=ag\ --nogroup\ --nocolor " Use ag in CtrlP for listing files. Lightning fast and respects .gitignore let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' endif " thanks to http://vimcasts.org/e/4 function! Strip_trailing() let previous_search=@/ let previous_cursor_line=line('.') let previous_cursor_column=col('.') %s/\s\+$//e let @/=previous_search call cursor(previous_cursor_line, previous_cursor_column) endfunction " strip trailing whitespace on Ruby buffer saves augroup whitespace autocmd BufWritePre *.rb call Strip_trailing() augroup END if (has("nvim")) "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 > let $NVIM_TUI_ENABLE_TRUE_COLOR=1 endif colorscheme dracula_pro_van_helsing