diff --git a/.config/aliasrc b/.config/aliasrc
index 83d9097..434c42f 100644
--- a/.config/aliasrc
+++ b/.config/aliasrc
@@ -12,12 +12,21 @@ alias "....."="cd ../../../.."
alias "......"="cd ../../../../.."
alias "dockervol"="cd /var/lib/docker/volumes"
+# cp
+alias cp="cp -i"
+
# clear
alias c="clear"
# config
alias config="/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME"
+# git
+alias ga="git add"
+alias grm="git rm"
+alias gc="git commit"
+alias gp="git push"
+
# grep
alias grep="grep --color=auto"
@@ -33,15 +42,24 @@ alias la="lsd -la"
alias ll="lsd -l"
alias tree="lsd --tree"
+# mid3v2
+alias tag="mid3v2"
+
# mkdir
alias mkdir="mkdir -p"
+# mv
+alias mv="mv -i"
+
# mount
alias mount="mount |column -t"
# ping
alias ping="ping -c 5"
+# rm
+alias rm="rm -i"
+
# sc-im
alias sc="sc-im"
@@ -49,4 +67,17 @@ alias sc="sc-im"
alias scriptclear="cat typescript | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > typescript-processed"
# nvim
+alias svim="sudo nvim"
+alias svi="sudo nvim"
command -v nvim >/dev/null && alias vim="nvim" vimdiff="nvim -d"
+command -v nvim >/dev/null && alias vi="nvim" vidiff="nvim -d"
+
+# weather
+alias weather="curl wttr.in"
+
+# wget
+alias wget="wget --hsts-file=$XDG_CACHE_HOME/wget-hsts"
+
+# youtube-dl
+alias yta="youtube-dl -f 'bestaudio[ext=m4a]'"
+alias ytv="youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]'"
diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim
index 1fb87bc..29b8dd0 100644
--- a/.config/nvim/init.vim
+++ b/.config/nvim/init.vim
@@ -1,4 +1,6 @@
-" Begin Plugin section
+let mapleader = ";"
+
+" begin plugin section
if ! filereadable(expand('~/.config/nvim/autoload/plug.vim'))
echo "Downloading junegunn/vim-plug to manage plugins..."
silent !mkdir -p ~/.config/nvim/autoload/
@@ -9,72 +11,152 @@ call plug#begin('~/.config/nvim/plugged')
Plug 'qpkorr/vim-renamer'
Plug 'tomasiser/vim-code-dark'
call plug#end()
-
-" End Plugin section
-
-let mapleader =","
+" end plugin section
set go=a
+
+" enable mouse for all modes
set mouse=a
+set clipboard+=unnamedplus
+
+" enable command completion
+set wildmode=longest,list,full
+
+" setting Tab-length
+set expandtab
+set softtabstop=4
+set shiftwidth=4
+
+" splits open at the bottom and right, which is non-retarded, unlike vim defaults.
+set splitbelow splitright
+
+" disable case sensitive matching
set ignorecase
-" Some basics:
-nnoremap c "_c
+
+" enable nocompatible mode
set nocompatible
+
+" enable Plugins
filetype plugin on
+
+" enable syntax highlighting
syntax on
+
+" enable true colors
+set termguicolors
+
+" set utf-8 encoding
set encoding=utf-8
+
+" show relative numbers on left side
set number relativenumber
-" Enable autocompletion:
-set wildmode=longest,list,full
-" Disables automatic commenting on newline:
-autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
-" Setting Tab-length
-set tabstop=4
-set softtabstop=4
-set shiftwidth=4
-colorscheme codedark
+" speedup vim with long lines
+set ttyfast
+set lazyredraw
-" Splits open at the bottom and right, which is non-retarded, unlike vim defaults.
-set splitbelow splitright
+" textEdit might fail without hidden
+set hidden
+
+" disable Backupfiles for Lsp
+set nobackup
+set nowritebackup
+
+" dont pass messages to ins-completion-menu
+set shortmess+=c
+
+" always show the signcolumn, otherwise it would shift the text each time
+" diagnostics appear/become resolved.
+if has("patch-8.1.1564")
+ " Recently vim can merge signcolumn and number column into one
+ set signcolumn=number
+else
+ set signcolumn=yes
+endif
+
+" enable persistent undo
+if has('persistent_undo')
+ set undofile
+ set undodir=$XDG_CACHE_HOME/vim/undo
+endif
+
+" unmap unwanted commands
+nnoremap
+nnoremap
+nnoremap
+nnoremap
+nnoremap
+nnoremap
+nnoremap
+nnoremap
+nnoremap
+nnoremap
+
+inoremap
+inoremap
+inoremap
+inoremap
+inoremap
+inoremap
+inoremap
+inoremap
+inoremap
+inoremap
+inoremap
+inoremap
+
+" mapping Dictionaries
+nnoremap :setlocal spell! spelllang=de_de
+nnoremap :setlocal spell! spelllang=en_us
+
+" compiler for languages
+nnoremap c :w! \| !compiler %
-" Mapping Dictionaries
-map :setlocal spell! spelllang=de
-map :set spelllang=en_us
-
-""" Shortcuts
-" Navigating with guides
-inoremap /<++>"_c4l
-vnoremap /<++>"_c4l
-map /<++>"_c4l
-
-" Navigating with guides
- inoremap /<++>"_c4l
- vnoremap /<++>"_c4l
- map /<++>"_c4l
-
-"""HTML
-autocmd BufRead,BufNewFile *.html set filetype=html
-
-autocmd FileType html inoremap ,b <++>FbT>i
-autocmd FileType html inoremap ,it <++>FeT>i
-autocmd FileType html inoremap ,1 <++>2kf<++>2kf<++>2kf
<++>02kf>a
-autocmd FileType html inoremap ,a href=""><++><++>14hi
-autocmd FileType html inoremap ,e target="_blank"href=""><++><++>14hi
-autocmd FileType html inoremap ,ul <++>03kfoF>a
-autocmd FileType html inoremap ,ol
<++>03kf<++>Fcf"a
-autocmd FileType html inoremap & &
-autocmd FileType html inoremap ä ä
-autocmd FileType html inoremap ö ö
-autocmd FileType html inoremap ü ü
-autocmd FileType html inoremap Ä Ä
-autocmd FileType html inoremap Ö Ö
-autocmd FileType html inoremap Ü Ü
-
-" Delete trailing whitespaces on save
-autocmd BufWritePre * %s/\s\+$//e
+" open corresponding file (pdf/html/...)
+nnoremap p :!opout %
+
+" shortcut for split navigation
+nnoremap h
+nnoremap j
+nnoremap k
+nnoremap l
+
+" save file as sudo on files that require root permission
+cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' edit!
+
+" alias for replacing
+nnoremap ss :%s//gI
+
+" delete trailing whitespaces on save
+fun! TrimWhitespace()
+ let l:save = winsaveview()
+ keeppatterns %s/\s\+$//e
+ call winrestview(l:save)
+endfun
+autocmd BufWritePre * :call TrimWhitespace()
+
+" read files correctly
+autocmd BufRead,BufNewFile *.tex set filetype=tex
+autocmd BufRead,BufNewFile *.h set filetype=c
+
+" formatting
+autocmd FileType c setlocal formatprg=astyle\ --mode=c
+autocmd FileType java setlocal formatprg=astyle\ --indent=spaces=2\ --style=google
+autocmd FileType java setlocal shiftwidth=2 softtabstop=2
+autocmd FileType markdown noremap :silent %!prettier --stdin-filepath %
+autocmd FileType python setlocal formatprg=autopep8\ -
+autocmd FileType tex,latex setlocal formatprg=latexindent\ -
+autocmd FileType c,java,python,tex,latex noremap gggqG
+
+" cleanup certain files after leaving the editor
+autocmd VimLeave *.tex !texclear %
+autocmd VimLeave *.c !cclear
+
+" highlighting break line
+autocmd BufEnter,FileType c set colorcolumn=80
+autocmd BufEnter,FileType java set colorcolumn=100
+autocmd BufEnter,FileType markdown set colorcolumn=80
+
+" colorscheme
+colorscheme codedark
+highlight colorcolumn guibg=#772222
diff --git a/.profile b/.profile
index c16335d..9c99d37 100644
--- a/.profile
+++ b/.profile
@@ -2,9 +2,17 @@
# Profile file. Runs on login.
# Adds `~/.local/bin` and all subdirectories to $PATH
-export PATH="$PATH:$(du "$HOME/.local/bin/" | cut -f2 | tr '\n' ':' | sed 's/:*$//')"
+export PATH="$PATH:$(du "${HOME}/.local/bin/" | cut -f2 | tr '\n' ':' | sed 's/:*$//')"
+
export EDITOR="nvim"
-export ZDOTDIR="$HOME"
+export ZDOTDIR="${HOME}"
+
+export XDG_CACHE_HOME="${HOME}/.cache"
+export XDG_CONFIG_HOME="${HOME}/.config"
+export XDG_DATA_HOME="${HOME}/.local/share"
+
+export HISTFILE="${XDG_CACHE_HOME}/shhistory"
+export TMUX_TMPDIR="${XDG_CACHE_HOME}/tmux"
# less/man colors
export LESS=-R
@@ -16,5 +24,5 @@ export LESS_TERMCAP_se="$(printf '%b' '[[0m')"; a="${a%_}"
export LESS_TERMCAP_us="$(printf '%b' '[[1;32m')"; a="${a%_}"
export LESS_TERMCAP_ue="$(printf '%b' '[[0m')"; a="${a%_}"
-echo "$0" | grep "bash$" >/dev/null && [ -f ~/.bashrc ] && source "$HOME/.bashrc"
-echo "$0" | grep "zsh$" >/dev/null && [ -f $ZDOTDIR/.zshrc ] && source "$ZDOTDIR/.zshrc"
+echo "$0" | grep "bash$" >/dev/null && [ -f ~/.bashrc ] && source "${HOME}/.bashrc"
+echo "$0" | grep "zsh$" >/dev/null && [ -f ${ZDOTDIR}/.zshrc ] && source "${ZDOTDIR}/.zshrc"
diff --git a/.zshrc b/.zshrc
index 2e4f2f2..fbad650 100644
--- a/.zshrc
+++ b/.zshrc
@@ -42,7 +42,7 @@ function +vi-git-stash() {
fi
}
zstyle ':vcs_info:git*+set-message:*' hooks git-st git-stash
-PS1='%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}#%b '
+PS1='%B%{$fg[red]%}[%n@%M %~]%{$reset_color%}#%b '
RPROMPT='%B%{$fg[magenta]%}$vcs_info_msg_0_%{$reset_color%}%b'
# History in cache directory