self-bootstrapping vimrc's
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

167 lines
3.5 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. filetype plugin indent on
  2. filetype on
  3. syntax on
  4. let g:mapleader=" "
  5. let g:just_installed = 0
  6. function! InstallPlug()
  7. if !filereadable(expand("~/.vim/autoload/plug.vim"))
  8. " try to install plug using curl and wget
  9. " If installation succeeds, we should source vim plug.
  10. if executable('curl')
  11. let result = system('curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim')
  12. if v:shell_error == 0
  13. let g:just_installed = 1
  14. return
  15. endif
  16. endif
  17. echom 'curl failed, trying wget. ' . result
  18. if executable('wget') && executable('mkdir')
  19. let result = system('mkdir -p ~/.vim/autoload && wget -O ~/.vim/autoload/plug.vim https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim')
  20. if v:shell_error == 0
  21. let g:just_installed = 1
  22. return
  23. endif
  24. endif
  25. echom 'wget failed too. ' . result
  26. finish
  27. endif
  28. endfu
  29. call InstallPlug()
  30. if g:just_installed == 1
  31. source ~/.vim/autoload/plug.vim
  32. endif
  33. call plug#begin()
  34. Plug 'catppuccin/vim'
  35. Plug 'Townk/vim-autoclose'
  36. Plug 'tpope/vim-fugitive'
  37. Plug 'vim-airline/vim-airline'
  38. Plug 'vim-airline/vim-airline-themes'
  39. Plug 'junegunn/goyo.vim'
  40. Plug 'junegunn/limelight.vim'
  41. call plug#end()
  42. " options
  43. set nu
  44. set rnu
  45. set mouse+=a
  46. set linebreak
  47. set shiftwidth=2
  48. set tabstop=2
  49. set softtabstop=2
  50. set expandtab
  51. set smarttab
  52. set shiftround
  53. set autoindent
  54. set textwidth=80
  55. set colorcolumn=80
  56. set list
  57. set nowrap
  58. set undofile nohlsearch incsearch
  59. set scrolloff=7
  60. set wildmode=longest,list,full
  61. set wildmenu
  62. autocmd FileType tex,text set nosmarttab autoindent
  63. autocmd Filetype python set textwidth=0 formatprg=autopep8 shiftwidth=4 tabstop=4 softtabstop=4
  64. autocmd FileType c,cpp,slang set nosmarttab autoindent
  65. autocmd Filetype markdown set nosmarttab shiftwidth=4 tabstop=4 softtabstop=4 autoindent
  66. autocmd BufReadPost *
  67. \ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
  68. \ | exe "normal! g`\""
  69. \ | endif
  70. " Remaps
  71. nnoremap j gj
  72. nnoremap k gk
  73. nnoremap <C-h> <C-w>h
  74. nnoremap <C-j> <C-w>j
  75. nnoremap <C-k> <C-w>k
  76. nnoremap <C-l> <C-w>l
  77. nnoremap <C-h> <C-w>h
  78. nnoremap <C-j> <C-w>j
  79. nnoremap <C-k> <C-w>k
  80. nnoremap <C-l> <C-w>l
  81. inoremap <A-a> ā
  82. inoremap <A-e> ē
  83. inoremap <A-i> ī
  84. inoremap <A-o> ō
  85. inoremap <A-u> ū
  86. nnoremap <F12> :w<BAR>:!texbld run compile<CR>
  87. nnoremap <F5> :w<BAR>:!./test.sh<CR>
  88. vnoremap J :m '>+1<CR>gv=gv
  89. vnoremap K :m '<-2<CR>gv=gv
  90. nnoremap J mzJ`z
  91. nnoremap <C-d> <C-d>zz
  92. nnoremap <C-u> <C-u>zz
  93. nnoremap n nzzzv
  94. nnoremap N Nzzzv
  95. xnoremap <leader>p _dP
  96. vnoremap <leader>y +y
  97. nnoremap <leader>y +y
  98. nnoremap <leader>Y +Y
  99. nnoremap <leader>x :!chmod +x %:p<CR>
  100. nnoremap <leader>X :!chmod -x %<CR>
  101. nnoremap <leader>e :! %:p<CR>
  102. nnoremap <leader>1 1gt
  103. nnoremap <leader>2 2gt
  104. nnoremap <leader>3 3gt
  105. nnoremap <leader>4 4gt
  106. nnoremap <leader>5 5gt
  107. nnoremap <leader>6 6gt
  108. nnoremap <leader>7 7gt
  109. nnoremap <leader>8 8gt
  110. nnoremap <leader>9 9gt
  111. nnoremap <leader>b :wprev<CR>
  112. nnoremap <leader>n :wnext<CR>
  113. nnoremap <C-n> :Lexplore<CR>
  114. nnoremap <leader>pv :Explore<CR>
  115. " Plugin options must go at the bottom of the file.
  116. " install plugins
  117. if g:just_installed == 1
  118. echom 'Installing Plugins...'
  119. PlugInstall
  120. endif
  121. set termguicolors
  122. set background=dark
  123. colorscheme catppuccin_macchiato
  124. autocmd! User GoyoEnter Limelight
  125. autocmd! User GoyoLeave Limelight!
  126. let g:airline_theme = "catppuccin_macchiato"
  127. let g:airline#extensions#tabline#enabled = 1
  128. nnoremap <leader>z :Goyo <CR>
  129. nnoremap <leader>gs :Git <CR>