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.

146 lines
5.6 KiB

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. " Autocomplete
  97. Plug 'neoclide/coc.nvim', {'branch': 'release'}
  98. " Latex Upgrades
  99. Plug 'donRaphaco/neotex', { 'for': 'tex'}
  100. Plug 'lervag/vimtex', {'for': 'tex'}
  101. " Indexing and Overview tools
  102. Plug 'preservim/nerdtree'
  103. Plug 'majutsushi/tagbar'
  104. " Git Upgrades
  105. Plug 'airblade/vim-gitgutter'
  106. " Use Vim together
  107. Plug 'FredKSchott/CoVim'
  108. " Bulk Renamer
  109. Plug 'qpkorr/vim-renamer'
  110. call plug#end()
  111. "tagbar
  112. map <F3> :TagbarToggle<CR>
  113. "nerdtree
  114. map <F2> :NERDTreeToggle<CR>
  115. autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
  116. let g:NERDTreeWinPos = "left"
  117. "neotex
  118. let g:neotex_enabled = 2
  119. " CoVim
  120. let CoVim_default_name = "TiynGER"
  121. let CoVim_default_port = "7000"
  122. " Coc
  123. inoremap <silent><expr> <TAB>
  124. \ pumvisible() ? "\<C-n>" :
  125. \ <SID>check_back_space() ? "\<TAB>" :
  126. \ coc#refresh()
  127. inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
  128. function! s:check_back_space() abort
  129. let col = col('.') - 1
  130. return !col || getline('.')[col - 1] =~# '\s'
  131. endfunction