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.

172 lines
3.6 KiB

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