Dotfiles for different machines on different branches.
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.

162 lines
3.9 KiB

  1. let mapleader = ";"
  2. " begin plugin section
  3. if ! filereadable(expand('~/.config/nvim/autoload/plug.vim'))
  4. echo "Downloading junegunn/vim-plug to manage plugins..."
  5. silent !mkdir -p ~/.config/nvim/autoload/
  6. silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ~/.config/nvim/autoload/plug.vim
  7. endif
  8. call plug#begin('~/.config/nvim/plugged')
  9. Plug 'qpkorr/vim-renamer'
  10. Plug 'tomasiser/vim-code-dark'
  11. call plug#end()
  12. " end plugin section
  13. set go=a
  14. " enable mouse for all modes
  15. set mouse=a
  16. set clipboard+=unnamedplus
  17. " enable command completion
  18. set wildmode=longest,list,full
  19. " setting Tab-length
  20. set expandtab
  21. set softtabstop=4
  22. set shiftwidth=4
  23. " splits open at the bottom and right, which is non-retarded, unlike vim defaults.
  24. set splitbelow splitright
  25. " disable case sensitive matching
  26. set ignorecase
  27. " enable nocompatible mode
  28. set nocompatible
  29. " enable Plugins
  30. filetype plugin on
  31. " enable syntax highlighting
  32. syntax on
  33. " enable true colors
  34. set termguicolors
  35. " set utf-8 encoding
  36. set encoding=utf-8
  37. " show relative numbers on left side
  38. set number relativenumber
  39. " speedup vim with long lines
  40. set ttyfast
  41. set lazyredraw
  42. " textEdit might fail without hidden
  43. set hidden
  44. " disable Backupfiles for Lsp
  45. set nobackup
  46. set nowritebackup
  47. " dont pass messages to ins-completion-menu
  48. set shortmess+=c
  49. " always show the signcolumn, otherwise it would shift the text each time
  50. " diagnostics appear/become resolved.
  51. if has("patch-8.1.1564")
  52. " Recently vim can merge signcolumn and number column into one
  53. set signcolumn=number
  54. else
  55. set signcolumn=yes
  56. endif
  57. " enable persistent undo
  58. if has('persistent_undo')
  59. set undofile
  60. set undodir=$XDG_CACHE_HOME/vim/undo
  61. endif
  62. " unmap unwanted commands
  63. nnoremap <F1> <NOP>
  64. nnoremap <F2> <NOP>
  65. nnoremap <F3> <NOP>
  66. nnoremap <F4> <NOP>
  67. nnoremap <F5> <NOP>
  68. nnoremap <F8> <NOP>
  69. nnoremap <F9> <NOP>
  70. nnoremap <F10> <NOP>
  71. nnoremap <F11> <NOP>
  72. nnoremap <F12> <NOP>
  73. inoremap <F1> <NOP>
  74. inoremap <F2> <NOP>
  75. inoremap <F3> <NOP>
  76. inoremap <F4> <NOP>
  77. inoremap <F5> <NOP>
  78. inoremap <F6> <NOP>
  79. inoremap <F7> <NOP>
  80. inoremap <F8> <NOP>
  81. inoremap <F9> <NOP>
  82. inoremap <F10> <NOP>
  83. inoremap <F11> <NOP>
  84. inoremap <F12> <NOP>
  85. " mapping Dictionaries
  86. nnoremap <F6> :setlocal spell! spelllang=de_de<CR>
  87. nnoremap <F7> :setlocal spell! spelllang=en_us<CR>
  88. " compiler for languages
  89. nnoremap <leader>c :w! \| !compiler <c-r>%<CR>
  90. " open corresponding file (pdf/html/...)
  91. nnoremap <leader>p :!opout <c-r>%<CR><CR>
  92. " shortcut for split navigation
  93. nnoremap <C-h> <C-w>h
  94. nnoremap <C-j> <C-w>j
  95. nnoremap <C-k> <C-w>k
  96. nnoremap <C-l> <C-w>l
  97. " save file as sudo on files that require root permission
  98. cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' <bar> edit!
  99. " alias for replacing
  100. nnoremap <leader>ss :%s//gI<Left><Left><Left>
  101. " delete trailing whitespaces on save
  102. fun! TrimWhitespace()
  103. let l:save = winsaveview()
  104. keeppatterns %s/\s\+$//e
  105. call winrestview(l:save)
  106. endfun
  107. autocmd BufWritePre * :call TrimWhitespace()
  108. " read files correctly
  109. autocmd BufRead,BufNewFile *.tex set filetype=tex
  110. autocmd BufRead,BufNewFile *.h set filetype=c
  111. " formatting
  112. autocmd FileType c setlocal formatprg=astyle\ --mode=c
  113. autocmd FileType java setlocal formatprg=astyle\ --indent=spaces=2\ --style=google
  114. autocmd FileType java setlocal shiftwidth=2 softtabstop=2
  115. autocmd FileType markdown noremap <F8> :silent %!prettier --stdin-filepath % <CR>
  116. autocmd FileType python setlocal formatprg=autopep8\ -
  117. autocmd FileType tex,latex setlocal formatprg=latexindent\ -
  118. autocmd FileType c,java,python,tex,latex noremap <F8> gggqG
  119. " cleanup certain files after leaving the editor
  120. autocmd VimLeave *.tex !texclear %
  121. autocmd VimLeave *.c !cclear
  122. " highlighting break line
  123. autocmd BufEnter,FileType c set colorcolumn=80
  124. autocmd BufEnter,FileType java set colorcolumn=100
  125. autocmd BufEnter,FileType markdown set colorcolumn=80
  126. " colorscheme
  127. colorscheme codedark
  128. highlight colorcolumn guibg=#772222