.vimrc 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. """""""""""""""""""""""""""""""""""""
  2. " Capella .vimrc
  3. """""""""""""""""""""""""""""""""""""
  4. set nocompatible " be iMproved, required
  5. filetype off " required
  6. " set the runtime path to include Vundle and initialize
  7. set rtp+=~/.vim/bundle/Vundle.vim
  8. call vundle#begin()
  9. " let Vundle manage Vundle, required
  10. Plugin 'VundleVim/Vundle.vim'
  11. " ------Plugins-------
  12. Plugin 'vim-airline/vim-airline'
  13. Plugin 'vim-airline/vim-airline-themes'
  14. Plugin 'scrooloose/nerdtree'
  15. Plugin 'tpope/vim-fugitive'
  16. Plugin 'kristijanhusak/vim-multiple-cursors'
  17. Plugin 'tpope/vim-surround'
  18. Plugin 'colors'
  19. Plugin 'jistr/vim-nerdtree-tabs'
  20. Plugin 'iwonbigbro/vim-hybrid'
  21. Plugin 'dense-analysis/ale'
  22. Plugin 'junegunn/fzf'
  23. Plugin 'junegunn/fzf.vim'
  24. Plugin 'sheerun/vim-polyglot'
  25. call vundle#end()
  26. filetype plugin indent on
  27. if has('syntax') && !exists('g:syntax_on')
  28. syntax enable
  29. endif
  30. """""""""""""""""""""""""""""""""""""
  31. " Configuration Section
  32. """""""""""""""""""""""""""""""""""""
  33. set laststatus=2
  34. set ruler
  35. set showcmd
  36. set wildmenu
  37. set autoread
  38. set backspace=indent,eol,start
  39. " Show line numbers
  40. set number
  41. set noruler
  42. set cursorline
  43. " Encoding
  44. set encoding=utf-8
  45. " Set Proper Tabs
  46. set tabstop=4
  47. set shiftwidth=4
  48. set smarttab
  49. set expandtab
  50. set listchars=tab:▒░,trail:▓
  51. set list
  52. " Search
  53. set hlsearch
  54. set incsearch
  55. " nnoremap <silent> <Esc><Esc> :let @/=""<CR>
  56. " Theme and Styling
  57. set t_Co=256
  58. set background=dark
  59. " Vim-Airline Configuration
  60. let g:airline#extensions#tabline#enabled = 1
  61. let g:airline_theme='badwolf'
  62. let g:airline_powerline_fonts = 1
  63. set guifont=Source\ Code\ Pro\ for\ Powerline
  64. set t_Co=256
  65. let g:NERDTreeDirArrowExpandable = '▸'
  66. let g:NERDTreeDirArrowCollapsible = '▾'
  67. """""""""""""""""""""""""""""""""""""
  68. " Colors
  69. """""""""""""""""""""""""""""""""""""
  70. colorscheme hybrid
  71. hi MatchParen cterm=bold ctermbg=none ctermfg=yellow
  72. hi ColorColumn ctermbg=232 guibg=#2c2d27
  73. autocmd FileType nerdtree setlocal colorcolumn&
  74. let &colorcolumn="".join(range(81,999),",")
  75. set splitright
  76. let g:NERDTreeDirArrows=0
  77. """""""""""""""""""""""""""""""""""""
  78. " Golang
  79. """""""""""""""""""""""""""""""""""""
  80. " Optional: Auto-detect templates within generic .html files
  81. function! DetectGoHtmlTmpl()
  82. if expand('%:e') == "html" && search("{{") != 0
  83. setfiletype gohtmltmpl
  84. endif
  85. endfunction
  86. augroup filetypedetect
  87. au BufRead,BufNewFile *.html call DetectGoHtmlTmpl()
  88. augroup END
  89. autocmd Filetype go command! -bang A call go#alternate#Switch(<bang>0, 'edit')
  90. autocmd Filetype go command! -bang AV call go#alternate#Switch(<bang>0, 'vsplit')
  91. autocmd Filetype go command! -bang AS call go#alternate#Switch(<bang>0, 'split')
  92. autocmd Filetype go command! -bang AT call go#alternate#Switch(<bang>0, 'tabe')
  93. map <C-l> :cnext<CR>
  94. map <C-k> :cprevious<CR>
  95. map gd :ALEGoToDefinition<CR>
  96. nnoremap <leader>a :cclose<CR>
  97. autocmd FileType go nmap <leader>b <Plug>(go-build)
  98. autocmd FileType go nmap <leader>r <Plug>(go-run)
  99. set spell spelllang=en_gb
  100. let g:ale_fix_on_save = 1
  101. let g:ale_completion_enabled = 1
  102. let g:ale_echo_msg_format = '[%linter%]% [code]% %s'
  103. let g:ale_sign_error = '✗'
  104. let g:ale_sign_warning = '⚠️'
  105. let g:ale_sign_column_always = 1
  106. let g:ale_fixers = {
  107. \ 'go': ['gofmt', 'gofumpt', 'goimports', 'golines', 'trim_whitespace'],
  108. \ 'html': ['prettier', 'trim_whitespace'],
  109. \ 'gohtmltmpl': ['prettier'],
  110. \ 'python': [
  111. \ 'autoflake',
  112. \ 'ruff',
  113. \ 'ruff_format',
  114. \ 'add_blank_lines_for_python_control_statements'
  115. \ ]
  116. \}
  117. let g:ale_linters= {
  118. \ 'python': ['pyright','ruff']
  119. \}
  120. let g:ale_python_auto_pipenv = 1