.vimrc 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. " essentials
  2. set ruler
  3. set mouse=a
  4. set nocompatible
  5. set bs=2
  6. set hlsearch
  7. set nowrap
  8. " give me all of teh colors!!
  9. set t_Co=256
  10. set bg=dark
  11. colorscheme elflord
  12. syntax on
  13. " tabs
  14. set shiftwidth=4
  15. set tabstop=4
  16. set softtabstop=4
  17. " tab based indention behaviors
  18. vmap <Tab> >
  19. nmap <Tab> >>
  20. vmap <S-Tab> <
  21. nmap <S-Tab> <<
  22. imap <S-Tab> <Esc><<i
  23. " folds
  24. set foldmethod=syntax
  25. set foldlevelstart=99
  26. " simplify working with the system clipboard
  27. vmap <C-c> "+y
  28. nmap <C-c> V"+y
  29. vmap <C-x> "+x
  30. nmap <C-x> V"+x
  31. imap <C-v> <Esc>"+Pi
  32. " no more ex mode!
  33. nmap Q <nop>
  34. " force syntax on a few file types
  35. autocmd BufNewFile,BufReadPost *.json set filetype=json syntax=javascript
  36. autocmd BufNewFile,BufReadPost *.md set filetype=markdown
  37. autocmd BufNewFile,BufReadPost *.go set filetype=go
  38. " run prettier with the = key
  39. autocmd FileType * setlocal equalprg=npx\ -q\ prettier\ --stdin-filepath\ %
  40. " VIM-PLUG PLUGINS (WITH FIRST-RUN AUTOINSTALL)
  41. if empty(glob('~/.vim/autoload/plug.vim'))
  42. 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"
  43. autocmd VimEnter * PlugInstall
  44. endif
  45. call plug#begin()
  46. Plug 'bling/vim-airline' " more helpful tab line and status lines with colors
  47. let g:airline#extensions#tabline#enabled = !has('gui_running')
  48. let g:airline#extensions#tabline#show_buffers = 0
  49. set laststatus=2
  50. set ttimeoutlen=50
  51. "TODO: decide if I care enough for: https://github.com/Lokaltog/powerline-fonts
  52. Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " tree file browser
  53. map <C-n> :NERDTreeToggle<CR>
  54. map <C-\> :NERDTreeToggle<CR>
  55. "TODO: detect SHIFT?: map <Shift><C-\> :NERDTreeFind<CR>
  56. Plug 'terryma/vim-multiple-cursors' " multiple cursor support
  57. Plug 'editorconfig/editorconfig-vim'
  58. Plug 'scrooloose/syntastic' " multi-language syntax checker
  59. let g:syntastic_check_on_open=1
  60. let g:syntastic_aggregate_errors=1
  61. let g:syntastic_javascript_checkers = ['eslint']
  62. Plug 'ntpeters/vim-better-whitespace' " whitespace!!
  63. let g:strip_whitespace_on_save = 1
  64. let g:better_whitespace_filetypes_blacklist=['conque_term']
  65. Plug 'nathanaelkane/vim-indent-guides' " pretty indent guides with softtabs
  66. let g:indent_guides_guide_size = 1
  67. let g:indent_guides_auto_colors = 0
  68. autocmd VimEnter * :highlight IndentGuidesOdd ctermbg=233
  69. autocmd VimEnter * :highlight IndentGuidesEven ctermbg=234
  70. autocmd VimEnter * :IndentGuidesEnable
  71. Plug 'lilydjwg/colorizer' " colorize CSS inline
  72. Plug 'kien/ctrlp.vim' " fuzzy file matcher / opener
  73. let g:ctrlp_user_command="find '%s' ! -wholename '*/.git/*' ! -wholename '*/node_modules/*' ! -wholename '*/report/*' -type f"
  74. Plug 'fisadev/vim-ctrlp-cmdpalette' " fuzzy command matcher / runner
  75. "TODO: detect SHIFT?: map <Shift><C-p> :CtrlPCmdPalette<CR>
  76. Plug 'tpope/vim-fugitive' " git commands and statusline
  77. Plug 'mhinz/vim-signify' " label VCS changes in gutter
  78. Plug 'oplatek/Conque-Shell' " a shell in a buffer
  79. let g:ConqueTerm_ReadUnfocused = 1
  80. let g:ConqueTerm_InsertOnEnter = 1
  81. let g:ConqueTerm_CloseOnEnd = 1
  82. Plug 'pangloss/vim-javascript' " better JavaScript support
  83. Plug 'moll/vim-node' " nodejs extras
  84. Plug 'leafgarland/typescript-vim' " TypeScript support
  85. autocmd QuickFixCmdPost [^l]* nested cwindow
  86. autocmd QuickFixCmdPost l* nested lwindow
  87. call plug#end()