dotfiles/.zshrc
2024-12-22 01:04:44 +01:00

66 lines
2.3 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Auto completion.
autoload -Uz compinit
zstyle ':completion:*' menu select
zstyle ':completion:*' completer _expand _complete _ignored
zstyle :compinstall filename '$HOME/.zshrc'
zmodload zsh/complist
compinit
_comp_options+=(globdots)
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
setopt autocd nomatch
unsetopt beep extendedglob notify
# End of lines configured by zsh-newuser-install
# Prompt left and right.
PROMPT='%n@%m[%T]: %B%F{240}%1~%f%b %# '
RPROMPT='%(?.%F{green}√.%F{red}?%?)%f'
bindkey -e # Emacs mode.
# Key bindings.
test -n "$terminfo[kdch1]" && bindkey "$terminfo[kdch1]" delete-char
test -n "$terminfo[kpp]" && bindkey "$terminfo[kpp]" beginning-of-buffer-or-history
test -n "$terminfo[knp]" && bindkey "$terminfo[knp]" end-of-buffer-or-history
test -n "$terminfo[khome]" && bindkey -M emacs "$terminfo[khome]" beginning-of-line
test -n "$terminfo[kend]" && bindkey -M emacs "$terminfo[kend]" end-of-line
[[ "$terminfo[khome]" == "O"* ]] && bindkey -M emacs "${terminfo[khome]/O/[}" beginning-of-line
[[ "$terminfo[kend]" == "O"* ]] && bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line
test -n "$terminfo[kcbt]" && bindkey -M menuselect "$terminfo[kcbt]" reverse-menu-complete
# Load additional key bindings.
eval "$(fzf --zsh 2> /dev/null)"
# Aliases.
alias ls='ls --color' la='ls -a' ll='ls -l' lla='ll -a'
alias mc='mc -xc'
alias grep='grep --color=auto'
cp() if [ -t 0 ]; then command cp -i "$@"; else command cp "$@"; fi
mv() if [ -t 0 ]; then command mv -i "$@"; else command mv "$@"; fi
rm() if [ -t 0 ]; then command rm -i "$@"; else command rm "$@"; fi
# Keep working directory in a new instance for vte terminal emulators
test -f /etc/profile.d/vte.sh && source /etc/profile.d/vte.sh
# Completion for kitty
kitty + complete setup zsh | source /dev/stdin
. ~/.zshenv # Restore $PATH to my custom one
# Plugins
if [ -f /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]
then
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
elif [ -n "$HOMEBREW_PREFIX" -a -f $HOMEBREW_PREFIX/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]
then
source $HOMEBREW_PREFIX/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
fi
whence -p fastfetch > /dev/null && fastfetch