.vimrc 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. " essentials
  2. set ruler
  3. set mouse=a
  4. set nocompatible
  5. set bs=2
  6. set nowrap
  7. " give me all of teh colors!!
  8. set t_Co=256
  9. set bg=dark
  10. colorscheme elflord
  11. syntax on
  12. " misc
  13. set path+=** " make :find tab-completion search subdirectories
  14. set wildmenu " show tab-complete menu for : commands
  15. " search
  16. set ignorecase " case insensitive search
  17. set smartcase " auto switch to case-sensitive if uppercase *is* used
  18. set incsearch " live incremental searching
  19. set showmatch " show matches live while typing
  20. set hlsearch " highlight matches
  21. " tabs
  22. set shiftwidth=4
  23. set tabstop=4
  24. set softtabstop=4
  25. " tab based indention behaviors
  26. vmap <Tab> >
  27. nmap <Tab> >>
  28. vmap <S-Tab> <
  29. nmap <S-Tab> <<
  30. imap <S-Tab> <Esc><<i
  31. " folds
  32. set foldmethod=syntax
  33. set foldlevelstart=99
  34. " simplify working with the system clipboard
  35. vmap <C-c> "+y
  36. nmap <C-c> V"+y
  37. vmap <C-x> "+x
  38. nmap <C-x> V"+x
  39. imap <C-v> <Esc>"+Pi
  40. " no more ex mode!
  41. nmap Q <nop>
  42. " force syntax on a few file types
  43. autocmd BufNewFile,BufReadPost *.json set filetype=json syntax=javascript
  44. autocmd BufNewFile,BufReadPost *.md set filetype=markdown
  45. autocmd BufNewFile,BufReadPost *.go set filetype=go
  46. " prefer ripgrep if available
  47. if executable('rg')
  48. set grepprg=rg\ --vimgrep\ $*
  49. set grepformat^=%f:%l:%c:%m
  50. endif
  51. " VIM-PLUG PLUGINS (WITH FIRST-RUN AUTOINSTALL)
  52. if empty(glob('~/.vim/autoload/plug.vim'))
  53. silent !mkdir -p "$HOME/.vim/autoload"; U="https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim"; F="$HOME/.vim/autoload/plug.vim"; curl -fLo "$F" "$U" 2>/dev/null || wget -qLO "$F" "$U"
  54. autocmd VimEnter * PlugInstall
  55. endif
  56. call plug#begin()
  57. Plug 'tpope/vim-commentary' " comment stuff out
  58. Plug 'vim-airline/vim-airline' " more helpful tab line and status lines with colors
  59. let g:airline#extensions#tabline#enabled = !has('gui_running')
  60. let g:airline#extensions#tabline#show_buffers = 0
  61. set laststatus=2
  62. set ttimeoutlen=50
  63. Plug 'mg979/vim-visual-multi' " multiple cursor support
  64. Plug 'editorconfig/editorconfig-vim'
  65. Plug 'vim-syntastic/syntastic' " multi-language syntax checker
  66. let g:syntastic_check_on_open=1
  67. let g:syntastic_aggregate_errors=1
  68. let g:syntastic_javascript_checkers = ['eslint']
  69. Plug 'ntpeters/vim-better-whitespace' " whitespace!!
  70. let g:strip_whitespace_on_save = 1
  71. Plug 'nathanaelkane/vim-indent-guides' " pretty indent guides with softtabs
  72. let g:indent_guides_guide_size = 1
  73. let g:indent_guides_auto_colors = 0
  74. autocmd VimEnter * :highlight IndentGuidesOdd ctermbg=233
  75. autocmd VimEnter * :highlight IndentGuidesEven ctermbg=234
  76. autocmd VimEnter * :IndentGuidesEnable
  77. Plug 'lilydjwg/colorizer' " colorize CSS inline
  78. Plug 'ctrlpvim/ctrlp.vim' " fuzzy file matcher / opener
  79. let ctrlp_user_cmd_fallback = 'find %s -type f'
  80. if executable('rg') | let ctrlp_user_cmd_fallback = 'rg --files %s' | endif
  81. let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files . -co --exclude-standard', ctrlp_user_cmd_fallback]
  82. Plug 'tpope/vim-fugitive' " git commands and statusline
  83. Plug 'mhinz/vim-signify' " label VCS changes in gutter
  84. Plug 'pangloss/vim-javascript' " better JavaScript support
  85. Plug 'moll/vim-node' " nodejs extras
  86. Plug 'leafgarland/typescript-vim' " TypeScript support
  87. autocmd QuickFixCmdPost [^l]* nested cwindow
  88. autocmd QuickFixCmdPost l* nested lwindow
  89. Plug 'rust-lang/rust.vim'
  90. call plug#end()