dotfiles/.zshrc

49 lines
1.5 KiB
Bash

# Archlinux packages p10k but nothing else does, so we have to check where p10k is
if [[ -a /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme ]]; then
source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme
else
source ~/.p10k/powerlevel10k.zsh-theme
fi
# Print user@host into title so terminal tabs are correct
# Despite being called precmd() this executes after process exits, before prompt
precmd() { echo -ne "\033]0;${USER}@${HOST}\007" }
# Generic navigation keybinds
bindkey "^[[H" beginning-of-line # HOME
bindkey "^[[F" end-of-line # END
bindkey "^[[3~" delete-char # DEL
bindkey '^R' history-incremental-search-backward
# Global aliases
alias ct="clear && task"
alias grep='grep -EIs --color=auto --exclude-dir=.git'
# Use exa if we have it
# I don't want this in .profile because it's not completely backward compatible with ls
if [ -e /usr/bin/exa ]; then
alias ls=exa
fi
# Note-taking alias
n () {
readonly openfile=${1:-Inbox.md}
$EDITOR ~/notes/$openfile
}
setopt appendhistory
# Case-insensetive tab completion
autoload -Uz compinit && compinit
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
# Edit long command lines in vim with ^x^e
autoload -U edit-command-line
zle -N edit-command-line
bindkey '^x^e' edit-command-line
# Load any kind of system-local stuff
[[ ! -f ~/.zshrc.local ]] || source ~/.zshrc.local
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh