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.

166 lines
4.8 KiB

7 months ago
7 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
7 months ago
11 months ago
11 months ago
11 months ago
11 months ago
  1. " Begin Plugin section
  2. if ! filereadable(expand('~/.local/share/nvim/autoload/plug.vim'))
  3. echo "Downloading junegunn/vim-plug to manage plugins..."
  4. silent !mkdir -p ~/.local/share/nvim/autoload/
  5. silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ~/.local/share/nvim/autoload/plug.vim
  6. autocmd VimEnter * PlugInstall
  7. endif
  8. call plug#begin('~/.local/share/nvim/plugged')
  9. Plug 'lervag/vimtex' , {'for' : 'tex'} " Tex library for autocompletion
  10. Plug 'donRaphaco/neotex' , {'for': 'tex'} " Asynchronous pdf rendering
  11. Plug 'scrooloose/nerdtree' " Filetree
  12. Plug 'majutsushi/tagbar' " Show tags
  13. Plug 'airblade/vim-gitgutter' " Git Upgrades
  14. "Plug 'FredKSchott/CoVim' "Use vim together
  15. Plug 'qpkorr/vim-renamer' " Bulk renamer
  16. Plug 'sirver/ultisnips' " Snippets
  17. Plug 'uiiaoo/java-syntax.vim' , {'for': 'java'} " Better syntax highlight for java than default
  18. Plug 'frazrepo/vim-rainbow' " Colorized matching brackets
  19. Plug 'junegunn/fzf.vim' " Quickly jump files using fzf
  20. Plug 'ryanoasis/vim-devicons' " Enable Icons for vim
  21. Plug 'rrethy/vim-hexokinase' , {'do': 'make hexokinase'} " Color Preview
  22. Plug 'tomasiser/vim-code-dark' " adding colorscheme
  23. Plug 'godlygeek/tabular' " Tabularizing things
  24. Plug 'plasticboy/vim-markdown' , {'for': 'md'} " Helps for markdown
  25. call plug#end()
  26. " Rainbow
  27. au FileType java,c,cpp,py,h call rainbow#load()
  28. " You complete me
  29. let g:ycm_global_ycm_extra_conf = '/home/tiynger/.config/nvim/ycm_extra_conf.py'
  30. let g:ycm_semantic_triggers = {
  31. \ 'tex' : ['{']
  32. \}
  33. if !exists('g:ycm_semantic_triggers')
  34. let g:ycm_semantic_triggers = {}
  35. endif
  36. let g:ycm_semantic_triggers.tex = g:vimtex#re#youcompleteme
  37. " Tagbar
  38. map <F3> :TagbarToggle<CR>
  39. " Nerdtree
  40. map <F2> :NERDTreeToggle<CR>
  41. autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
  42. let g:NERDTreeWinPos = "left"
  43. " Neotex
  44. let g:neotex_enabled = 2
  45. " CoVim
  46. let CoVim_default_name = "TiynGER"
  47. let CoVim_default_port = "7000"
  48. " Hexokinase
  49. let g:Hexokinase_refreshEvents = ['InsertLeave']
  50. let g:Hexokinase_optInPatterns = [
  51. \ 'full_hex',
  52. \ 'triple_hex',
  53. \ 'rgb',
  54. \ 'rgba',
  55. \ 'hsl',
  56. \ 'hsla',
  57. \ 'color_names'
  58. \]
  59. let g:Hexokinase_highlighters = ['backgroundfull']
  60. autocmd VimEnter * HexokinaseTurnOn
  61. " Vim-Mardown
  62. let g:vim_markdown_folding_disabled=1
  63. let g:vim_markdown_no_default_key_mappings=1
  64. " End Plugin section
  65. let mapleader =","
  66. set go=a
  67. " Enable mouse for all modes
  68. set mouse=a
  69. set clipboard+=unnamedplus
  70. " Enable command completion
  71. set wildmode=longest,list,full
  72. " Setting Tab-length
  73. set expandtab
  74. set softtabstop=4
  75. set shiftwidth=4
  76. " Splits open at the bottom and right, which is non-retarded, unlike vim defaults.
  77. set splitbelow splitright
  78. " Disable case sensitive matching
  79. set ignorecase
  80. " Enable nocompatible mode
  81. set nocompatible
  82. " Enable Plugins
  83. filetype plugin on
  84. " Enable syntax highlighting
  85. syntax on
  86. " Enable true colors
  87. set termguicolors
  88. " Set utf-8 encoding
  89. set encoding=utf-8
  90. " Show relative numbers on left side
  91. set number relativenumber
  92. " Speedup vim with long lines
  93. set ttyfast
  94. set lazyredraw
  95. " enable persistent undo
  96. if has('persistent_undo')
  97. set undofile
  98. set undodir=$XDG_CACHE_HOME/vim/undo
  99. endif
  100. " Colorscheme
  101. colorscheme codedark
  102. highlight CursorLine ctermbg=Yellow cterm=bold guibg=#1b1b1b
  103. highlight CursorColumn ctermbg=Yellow cterm=bold guibg=#1b1b1b
  104. " Center screen on Insertion
  105. autocmd InsertEnter * norm zz
  106. " Delete trailing whitespaces on save
  107. autocmd BufWritePre * %s/\s\+$//e
  108. " Disables automatic commenting on newline:
  109. autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
  110. " Clean LaTex build files
  111. autocmd VimLeave *.tex !texclear %
  112. " Read files correctly
  113. autocmd BufRead,BufNewFile *.tex set filetype=tex
  114. autocmd BufRead,BufNewFile *.h set filetype=c
  115. " Mapping Dictionaries
  116. map <F5> :setlocal spell! spelllang=de_de<CR>
  117. map <F6> :set spelllang=en_us<CR>
  118. " Compiler for languages
  119. map <leader>c :w! \| !compiler <c-r>%<CR>
  120. " Open corresponding file (pdf/html/...)
  121. map <leader>p :!opout <c-r>%<CR><CR>
  122. " Shortcut for split navigation
  123. map <C-h> <C-w>h
  124. map <C-j> <C-w>j
  125. map <C-k> <C-w>k
  126. map <C-l> <C-w>l
  127. " Copy selected text to system clipboard (requires gvim/nvim/vim-x11 installed):
  128. map <C-p> "+P
  129. vnoremap <C-c> "+y
  130. " Save file as sudo on files that require root permission
  131. cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' <bar> edit!
  132. " Alias for replacing
  133. nnoremap S :%s//gI<Left><Left><Left>
  134. " Start Formatting section
  135. autocmd FileType java,python,c,tex,latex noremap <F8> gggqG
  136. au FileType python setlocal formatprg=autopep8\ -
  137. au FileType java setlocal formatprg=google-java-format\ -
  138. autocmd FileType java setlocal shiftwidth=2 softtabstop=2
  139. au FileType c setlocal formatprg=astyle\ --mode=c
  140. au FileType tex,latex setlocal formatprg=latexindent\ -
  141. " End Formatting section