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.

159 lines
6.1 KiB

11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
  1. let mapleader =","
  2. if ! filereadable(expand('~/.config/nvim/autoload/plug.vim'))
  3. echo "Downloading junegunn/vim-plug to manage plugins..."
  4. silent !mkdir -p ~/.config/nvim/autoload/
  5. silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ~/.config/nvim/autoload/plug.vim
  6. autocmd VimEnter * PlugInstall
  7. endif
  8. "set bg=light
  9. set go=a
  10. set mouse=a
  11. set nohlsearch
  12. set clipboard=unnamedplus
  13. " Some basics:
  14. nnoremap c "_c
  15. set nocompatible
  16. filetype plugin on
  17. syntax on
  18. set encoding=utf-8
  19. set number relativenumber
  20. " Enable autocompletion:
  21. set wildmode=longest,list,full
  22. " Disables automatic commenting on newline:
  23. autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
  24. " Setting Tab-length
  25. set tabstop=4
  26. set softtabstop=4
  27. set shiftwidth=4
  28. " Splits open at the bottom and right, which is non-retarded, unlike vim defaults.
  29. set splitbelow splitright
  30. " Copy selected text to system clipboard (requires gvim/nvim/vim-x11 installed):
  31. vnoremap <C-c> "+y
  32. map <C-p> "+P
  33. " Save file as sudo on files that require root permission
  34. cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' <bar> edit!
  35. " Mapping Dictionaries
  36. map <F5> :setlocal spell! spelllang=de<CR>
  37. map <F6> :set spelllang=en_us<CR>
  38. " Read files correctly
  39. autocmd BufRead,BufNewFile *.tex set filetype=tex
  40. """ Shortcuts
  41. " Navigating with guides
  42. inoremap <leader><leader> <Esc>/<++><Enter>"_c4l
  43. vnoremap <leader><leader> <Esc>/<++><Enter>"_c4l
  44. map <leader><leader> <Esc>/<++><Enter>"_c4l
  45. "" LATEX
  46. " Clean LaTex build files
  47. autocmd VimLeave *.tex !texclear %
  48. autocmd FileType tex inoremap ,fr \begin{frame}<Enter>\frametitle{}<Enter><Enter><++><Enter><Enter>\end{frame}<Enter><Enter><++><Esc>6kf}i
  49. autocmd FileType tex inoremap ,em \emph{}<++><Esc>T{i
  50. autocmd FileType tex inoremap ,bf \textbf{}<++><Esc>T{i
  51. autocmd FileType tex inoremap ,it \textit{}<++><Esc>T{i
  52. autocmd FileType tex inoremap ,ct \textcite{}<++><Esc>T{i
  53. autocmd FileType tex inoremap ,cp \parencite{}<++><Esc>T{i
  54. autocmd FileType tex inoremap ,ol \begin{enumerate}<Enter><Enter>\end{enumerate}<Enter><Enter><++><Esc>3kA\item<Space>
  55. autocmd FileType tex inoremap ,ul \begin{itemize}<Enter><Enter>\end{itemize}<Enter><Enter><++><Esc>3kA\item<Space>
  56. autocmd FileType tex inoremap ,li <Enter>\item<Space>
  57. autocmd FileType tex inoremap ,ref \ref{}<Space><++><Esc>T{i
  58. autocmd FileType tex inoremap ,tab \begin{tabular}<Enter><++><Enter>\end{tabular}<Enter><Enter><++><Esc>4kA{}<Esc>i
  59. autocmd FileType tex inoremap ,a \href{}{<++>}<Space><++><Esc>2T{i
  60. autocmd FileType tex inoremap ,sc \textsc{}<Space><++><Esc>T{i
  61. autocmd FileType tex inoremap ,chap \chapter{}<Enter><Enter><++><Esc>2kf}i
  62. autocmd FileType tex inoremap ,sec \section*{}<Enter><Enter><++><Esc>2kf}i
  63. autocmd FileType tex inoremap ,ssec \subsection*{}<Enter><Enter><++><Esc>2kf}i
  64. autocmd FileType tex inoremap ,sssec \subsubsection*{}<Enter><Enter><++><Esc>2kf}i
  65. autocmd FileType tex inoremap ,beg \begin{DELRN}<Enter><++><Enter>\end{DELRN}<Enter><Enter><++><Esc>4k0fR:MultipleCursorsFind<Space>DELRN<Enter>c
  66. autocmd FileType tex inoremap ,up <Esc>/usepackage<Enter>o\usepackage{}<Esc>i
  67. autocmd FileType tex nnoremap ,up /usepackage<Enter>o\usepackage{}<Esc>i
  68. autocmd FileType tex inoremap ,tt \texttt{}<Space><++><Esc>T{i
  69. """HTML
  70. autocmd FileType html inoremap ,b <b></b><Space><++><Esc>FbT>i
  71. autocmd FileType html inoremap ,it <em></em><Space><++><Esc>FeT>i
  72. autocmd FileType html inoremap ,1 <h1></h1><Enter><Enter><++><Esc>2kf<i
  73. autocmd FileType html inoremap ,2 <h2></h2><Enter><Enter><++><Esc>2kf<i
  74. autocmd FileType html inoremap ,3 <h3></h3><Enter><Enter><++><Esc>2kf<i
  75. autocmd FileType html inoremap ,p <p></p><Enter><Enter><++><Esc>02kf>a
  76. autocmd FileType html inoremap ,a <a<Space>href=""><++></a><Space><++><Esc>14hi
  77. autocmd FileType html inoremap ,e <a<Space>target="_blank"<Space>href=""><++></a><Space><++><Esc>14hi
  78. autocmd FileType html inoremap ,ul <ul><Enter><li></li><Enter></ul><Enter><Enter><++><Esc>03kf<i
  79. autocmd FileType html inoremap ,li <Esc>o<li></li><Esc>F>a
  80. autocmd FileType html inoremap ,ol <ol><Enter><li></li><Enter></ol><Enter><Enter><++><Esc>03kf<i
  81. autocmd FileType html inoremap ,im <img src="" alt="<++>"><++><esc>Fcf"a
  82. autocmd FileType html inoremap &<space> &amp;<space>
  83. autocmd FileType html inoremap ä &auml;
  84. autocmd FileType html inoremap ë &euml;
  85. autocmd FileType html inoremap ï &iuml;
  86. autocmd FileType html inoremap ö &ouml;
  87. autocmd FileType html inoremap ü &uuml;
  88. " Compiler for languages
  89. map <leader>c :w! \| !compiler <c-r>%<CR>
  90. " Open corresponding file (pdf/html/...)
  91. map <leader>p :!opout <c-r>%<CR><CR>
  92. " Delete trailing whitespaces on save
  93. autocmd BufWritePre * %s/\s\+$//e
  94. " Plugin section
  95. call plug#begin('~/.config/nvim/plugged')
  96. " Autocorrect
  97. Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
  98. " Latex Upgrades
  99. Plug 'donRaphaco/neotex', { 'for': 'tex'}
  100. Plug 'lervag/vimtex', {'for': 'tex'}
  101. " Java Upgrades
  102. Plug 'artur-shaik/vim-javacomplete2'
  103. " Indexing and Overview tools
  104. Plug 'preservim/nerdtree'
  105. Plug 'majutsushi/tagbar'
  106. " Git Upgrades
  107. Plug 'airblade/vim-gitgutter'
  108. " Use Vim together
  109. Plug 'FredKSchott/CoVim'
  110. " Bulk Renamer
  111. Plug 'qpkorr/vim-renamer'
  112. " Python3 Upgrades
  113. Plug 'zchee/deoplete-jedi'
  114. call plug#end()
  115. "tagbar
  116. map <F3> :TagbarToggle<CR>
  117. let g:tagbar_left = 1
  118. "nerdtree
  119. map <F2> :NERDTreeToggle<CR>
  120. autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
  121. let g:NERDTreeWinPos = "right"
  122. "neotex
  123. let g:neotex_enabled = 2
  124. "deoplete
  125. let g:deoplete#enable_at_startup = 1
  126. let g:deoplete#enable_smart_case = 1
  127. let g:deoplete#sources = {}
  128. let g:deoplete#sources.java = ['jc', 'javacomplete2', 'file', 'buffer']
  129. call deoplete#custom#var('omni', 'input_patterns', {
  130. \ 'tex': g:vimtex#re#deoplete
  131. \})
  132. ""tab as remapping for deoplete
  133. inoremap <silent><expr> <TAB>
  134. \ pumvisible() ? "\<C-n>" :
  135. \ <SID>check_back_space() ? "\<TAB>" :
  136. \ deoplete#mappings#manual_complete()
  137. function! s:check_back_space() abort "" {{{
  138. let col = col('.') - 1
  139. return !col || getline('.')[col - 1] =~ '\s'
  140. endfunction "" }}}
  141. " javacomplete2
  142. autocmd FileType java setlocal omnifunc=javacomplete#Complete
  143. " CoVim
  144. let CoVim_default_name = "TiynGER"
  145. let CoVim_default_port = "7000"