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.

153 lines
5.7 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
  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. " Clean LaTex build files
  31. autocmd VimLeave *.tex !texclear %
  32. " Copy selected text to system clipboard (requires gvim/nvim/vim-x11 installed):
  33. vnoremap <C-c> "+y
  34. map <C-p> "+P
  35. " Save file as sudo on files that require root permission
  36. cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' <bar> edit!
  37. " Mapping Dictionaries
  38. map <F5> :setlocal spell! spelllang=de<CR>
  39. map <F6> :set spelllang=en_us<CR>
  40. " Read files correctly
  41. autocmd BufRead,BufNewFile *.tex set filetype=tex
  42. """ Shortcuts
  43. " Navigating with guides
  44. inoremap <leader><leader> <Esc>/<++><Enter>"_c4l
  45. vnoremap <leader><leader> <Esc>/<++><Enter>"_c4l
  46. map <leader><leader> <Esc>/<++><Enter>"_c4l
  47. " Compiler for languages
  48. map <leader>c :w! \| !compiler <c-r>%<CR>
  49. " Open corresponding file (pdf/html/...)
  50. map <leader>p :!opout <c-r>%<CR><CR>
  51. " Delete trailing whitespaces on save
  52. autocmd BufWritePre * %s/\s\+$//e
  53. " Plugin section
  54. call plug#begin('~/.config/nvim/plugged')
  55. Plug 'neoclide/coc.nvim', {'branch': 'release'} " Autocomplete
  56. Plug 'lervag/vimtex', {'for': 'tex'} " library for coc autocomplete
  57. Plug 'donRaphaco/neotex', { 'for': 'tex'} " Asynchronous pdf rendering
  58. Plug 'preservim/nerdtree' " Filetree
  59. Plug 'majutsushi/tagbar' " Show tags
  60. Plug 'airblade/vim-gitgutter' " Git Upgrades
  61. Plug 'FredKSchott/CoVim' "Use vim together
  62. Plug 'qpkorr/vim-renamer' " Bulk renamer
  63. call plug#end()
  64. " Coc extensions
  65. let g:coc_global_extensions = ['coc-snippets', 'coc-vimtex']
  66. " Coc remaps
  67. inoremap <silent><expr> <TAB>
  68. \ pumvisible() ? "\<C-n>" :
  69. \ <SID>check_back_space() ? "\<TAB>" :
  70. \ coc#refresh()
  71. inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
  72. function! s:check_back_space() abort
  73. let col = col('.') - 1
  74. return !col || getline('.')[col - 1] =~# '\s'
  75. endfunction
  76. "tagbar
  77. map <F3> :TagbarToggle<CR>
  78. "nerdtree
  79. map <F2> :NERDTreeToggle<CR>
  80. autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
  81. let g:NERDTreeWinPos = "left"
  82. "neotex
  83. let g:neotex_enabled = 2
  84. " CoVim
  85. let CoVim_default_name = "TiynGER"
  86. let CoVim_default_port = "7000"
  87. """HTML
  88. autocmd FileType html inoremap ,b <b></b><Space><++><Esc>FbT>i
  89. autocmd FileType html inoremap ,it <em></em><Space><++><Esc>FeT>i
  90. autocmd FileType html inoremap ,1 <h1></h1><Enter><Enter><++><Esc>2kf<i
  91. autocmd FileType html inoremap ,2 <h2></h2><Enter><Enter><++><Esc>2kf<i
  92. autocmd FileType html inoremap ,3 <h3></h3><Enter><Enter><++><Esc>2kf<i
  93. autocmd FileType html inoremap ,p <p></p><Enter><Enter><++><Esc>02kf>a
  94. autocmd FileType html inoremap ,a <a<Space>href=""><++></a><Space><++><Esc>14hi
  95. autocmd FileType html inoremap ,e <a<Space>target="_blank"<Space>href=""><++></a><Space><++><Esc>14hi
  96. autocmd FileType html inoremap ,ul <ul><Enter><li></li><Enter></ul><Enter><Enter><++><Esc>03kf<i
  97. autocmd FileType html inoremap ,li <Esc>o<li></li><Esc>F>a
  98. autocmd FileType html inoremap ,ol <ol><Enter><li></li><Enter></ol><Enter><Enter><++><Esc>03kf<i
  99. autocmd FileType html inoremap ,im <img src="" alt="<++>"><++><esc>Fcf"a
  100. autocmd FileType html inoremap &<space> &amp;<space>
  101. autocmd FileType html inoremap ä &auml;
  102. autocmd FileType html inoremap ë &euml;
  103. autocmd FileType html inoremap ï &iuml;
  104. autocmd FileType html inoremap ö &ouml;
  105. autocmd FileType html inoremap ü &uuml;
  106. "" LATEX
  107. autocmd FileType tex inoremap ,fr \begin{frame}<Enter>\frametitle{}<Enter><Enter><++><Enter><Enter>\end{frame}<Enter><Enter><++><Esc>6kf}i
  108. autocmd FileType tex inoremap ,em \emph{}<++><Esc>T{i
  109. autocmd FileType tex inoremap ,bf \textbf{}<++><Esc>T{i
  110. autocmd FileType tex inoremap ,it \textit{}<++><Esc>T{i
  111. autocmd FileType tex inoremap ,ct \textcite{}<++><Esc>T{i
  112. autocmd FileType tex inoremap ,cp \parencite{}<++><Esc>T{i
  113. autocmd FileType tex inoremap ,ol \begin{enumerate}<Enter><Enter>\end{enumerate}<Enter><Enter><++><Esc>3kA\item<Space>
  114. autocmd FileType tex inoremap ,ul \begin{itemize}<Enter><Enter>\end{itemize}<Enter><Enter><++><Esc>3kA\item<Space>
  115. autocmd FileType tex inoremap ,li <Enter>\item<Space>
  116. autocmd FileType tex inoremap ,ref \ref{}<Space><++><Esc>T{i
  117. autocmd FileType tex inoremap ,tab \begin{tabular}<Enter><++><Enter>\end{tabular}<Enter><Enter><++><Esc>4kA{}<Esc>i
  118. autocmd FileType tex inoremap ,a \href{}{<++>}<Space><++><Esc>2T{i
  119. autocmd FileType tex inoremap ,sc \textsc{}<Space><++><Esc>T{i
  120. autocmd FileType tex inoremap ,chap \chapter{}<Enter><Enter><++><Esc>2kf}i
  121. autocmd FileType tex inoremap ,sec \section*{}<Enter><Enter><++><Esc>2kf}i
  122. autocmd FileType tex inoremap ,ssec \subsection*{}<Enter><Enter><++><Esc>2kf}i
  123. autocmd FileType tex inoremap ,sssec \subsubsection*{}<Enter><Enter><++><Esc>2kf}i
  124. autocmd FileType tex inoremap ,beg \begin{DELRN}<Enter><++><Enter>\end{DELRN}<Enter><Enter><++><Esc>4k0fR:MultipleCursorsFind<Space>DELRN<Enter>c
  125. autocmd FileType tex inoremap ,up <Esc>/usepackage<Enter>o\usepackage{}<Esc>i
  126. autocmd FileType tex nnoremap ,up /usepackage<Enter>o\usepackage{}<Esc>i
  127. autocmd FileType tex inoremap ,tt \texttt{}<Space><++><Esc>T{i