dotfiles/zsh/.zshrc
2023-01-01 16:16:21 +02:00

98 lines
2.4 KiB
Bash

unsetopt beep
# unsetopt AUTO_MENU
# setopt MENU_COMPLETE
# setopt AUTO_CD
# History
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt HIST_IGNORE_ALL_DUPS
setopt EXTENDED_HISTORY
setopt APPEND_HISTORY
if [ -e "/usr/share/fzf" ]; then
source /usr/share/fzf/key-bindings.zsh
source /usr/share/fzf/completion.zsh
fi
### Aliases ---------------------------------------------
alias vim="nvim"
alias rm="rm -i"
alias mv="mv -i"
alias ls="exa --group-directories-first"
alias ll="ls -lh"
alias la="ls -lha"
alias grep="grep --color=auto"
alias less="less -r"
alias nnn="nnn -e"
[ "$TERM" = "xterm-kitty" ] && alias ssh="kitty +kitten ssh"
alias gs="git status"
alias gap="git add -p"
alias gc="git commit"
alias lg="lazygit"
### -----------------------------------------------------
# Fix keys
bindkey '^[[H' beginning-of-line
bindkey '^[[F' end-of-line
bindkey '^H' backward-delete-word
bindkey '^[[1;5D' backward-word
bindkey '^[[1;5C' forward-word
bindkey '^[[3~' delete-char
bindkey '^[[3;5~' delete-word
### zsh-autosuggestions
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#a6a6a6"
ZSH_AUTOSUGGEST_USE_ASYNC=1
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20
zle -N autosuggest-accept
bindkey '^ ' autosuggest-accept
export ZISH_HOME=$HOME/.local/share/zish
export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
export PATH="$PATH:$HOME/.local/bin"
install_plugin() {
IFS='/' read group project <<< "$1"
repo=$1
dir="$ZISH_HOME/repos/$repo"
shift
while [ $# -gt 0 ]; do
IFS=':' read action value <<< "$1"
case $action in
"build")
build=$value
;;
"use")
use=$dir/$value
;;
esac
shift
done
if [[ ! -d $dir ]]; then
mkdir -p $dir && cd $dir && git clone --depth=1 "https://github.com/$repo" .
[ -v build ] && eval $build
fi
[ -v use ] && source $use || source $dir/$project.plugin.zsh
}
install_plugin "zsh-users/zsh-syntax-highlighting"
install_plugin "zsh-users/zsh-autosuggestions"
install_plugin "zsh-users/zsh-completions"
install_plugin "trapd00r/LS_COLORS" build:"dircolors -b LS_COLORS > c.zsh" use:"c.zsh"
zstyle ":completion:*" list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
zstyle ':completion:*' menu select
autoload -U compinit
eval "$(zoxide init zsh)"
# starship prompt: https://github.com/starship/starship
# Must be at end of file
eval "$(starship init zsh)"