function! BuildComposer(info) if a:info.status != 'unchanged' || a:info.force if has('nvim') !cargo build --release else !cargo build --release --no-default-features --features json-rpc endif endif endfunction call plug#begin('~/.vim/plugged') " Pick a theme, any theme, really Plug 'NLKNguyen/papercolor-theme' Plug 'danilo-augusto/vim-afterglow' Plug 'altercation/vim-colors-solarized' Plug 'flazz/vim-colorschemes' Plug 'morhetz/gruvbox' Plug 'mhartington/oceanic-next' Plug 'joshdick/onedark.vim' " Syntax support Plug 'euclio/vim-markdown-composer', { 'do': function('BuildComposer') } Plug 'elixir-editors/vim-elixir' Plug 'jason0x43/vim-js-indent' Plug 'leafgarland/typescript-vim' Plug 'peitalin/vim-jsx-typescript' Plug 'mustache/vim-mustache-handlebars' Plug 'mxw/vim-jsx' Plug 'pangloss/vim-javascript' Plug 'rust-lang/rust.vim' Plug 'vim-ruby/vim-ruby' Plug 'styled-components/vim-styled-components', { 'branch': 'main' } Plug 'kchmck/vim-coffee-script' " Extensions " Chuch of tpope Plug 'tpope/vim-endwise' Plug 'tpope/vim-dispatch' Plug 'tpope/vim-commentary' Plug 'tpope/vim-surround' Plug 'tpope/vim-fugitive' Plug 'sjl/splice.vim' Plug 'srstevenson/vim-picker' Plug 'scrooloose/nerdtree' Plug 'francoiscabrol/ranger.vim' Plug 'wellle/targets.vim' Plug 'bkad/CamelCaseMotion' Plug 'ConradIrwin/vim-bracketed-paste' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'airblade/vim-gitgutter' Plug 'mileszs/ack.vim' Plug 'preservim/tagbar' call plug#end() " General config syntax enable if $VIM_BACKGROUND == 'light' set background=light endif if $VIM_BACKGROUND == 'dark' set background=dark endif set shell=$SHELL set bs=2 set tabstop=2 set foldmethod=syntax set foldlevelstart=99 set expandtab set shiftwidth=2 set softtabstop=2 set ai set number set relativenumber set mouse=a filetype plugin on runtime macros/matchit.vim set grepprg=rg\ --vimgrep\ --no-heading set grepformat=%f:%l:%c:%m,%f:%l:%m let g:ackprg = 'rg --vimgrep --no-heading' " Shorthand commands cnoreabbrev Spec Dispatch bundle exec rspec % " Key bindings let mapleader = "\" nnoremap ; : nnoremap : ; " Roll yur own tpope nnoremap } :set spell nnoremap { :set spell& nnoremap ] :cnext nnoremap [ :cprev nnoremap r :Ranger nnoremap n :NERDTree % nnoremap s :w :Dispatch bundle exec rspec --only-failures --fail-fast % nnoremap ss :w :Dispatch bundle exec rspec % nnoremap b :Git blame nnoremap g :G nnoremap c :Git commit nnoremap / :noh nnoremap x :PickerSplit nnoremap p :PickerEdit nnoremap t :PickerTabedit nnoremap v :PickerVsplit nnoremap u :PickerTag nnoremap w :TagbarToggle nnoremap h h nnoremap j j nnoremap k k nnoremap l l nnoremap h 20< nnoremap l 20> nnoremap j 20+ nnoremap k 20- nnoremap :tabn nnoremap :tabp map w CamelCaseMotion_w map b CamelCaseMotion_b map e CamelCaseMotion_e map ge CamelCaseMotion_ge sunmap w sunmap b sunmap e sunmap ge let g:picker_custom_find_executable = 'rg' let g:picker_custom_find_flags = '. -l' " Theme colorscheme $VIM_THEME let g:airline_powerline_fonts = 1 let g:airline_theme=$VIM_AIRLINE_THEME let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#formatter = 'unique_tail' let g:airline#extensions#tabline#show_buffers = 0 let g:airline#extensions#tabline#show_tab_nr = 0 let g:airline#extensions#tabline#show_tab_type = 0 let g:airline#extensions#tabline#left_sep = '' let g:airline#extensions#tabline#left_alt_sep = '' let g:airline#extensions#tabline#right_sep = '' let g:airline#extensions#tabline#right_alt_sep = '' let g:airline#extensions#tabline#show_close_button = 0 let g:airline#extensions#tabline#show_splits = 0 let g:airline#extensions#tabline#tab_min_count = 2 let g:airline#extensions#branch#enabled = 0 " Distribute windows when resize happens. au VimResized * :wincmd = let g:ctrlp_working_path_mode = 'rw' augroup jbuilder au! autocmd BufNewFile,BufRead *.jbuilder set syntax=ruby augroup END augroup es au! autocmd BufNewFile,BufRead *.es6 set syntax=javascript augroup END set spelllang=en autocmd FileType markdown setlocal spell autocmd FileType gitcommit setlocal spell autocmd FileType markdown setlocal complete+=kspell autocmd FileType gitcommit setlocal complete+=kspell