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.

165 lines
3.4 KiB

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