54 lines
1.2 KiB
Bash
54 lines
1.2 KiB
Bash
# useful functions
|
|
autoload -Uz zmv zcalc zargs url-quote-magic bracketed-paste-magic
|
|
zle -N self-insert url-quote-magic
|
|
zle -N bracketed-paste bracketed-paste-magic
|
|
|
|
# tilde directories
|
|
hash -d \
|
|
nixos=/etc/nixos \
|
|
dl=~/Downloads \
|
|
git=~/git
|
|
|
|
hash -d \
|
|
github=~git/github.com \
|
|
gitlab=~git/gitlab.com
|
|
|
|
|
|
# key binds
|
|
bindkey -v '^?' backward-delete-char
|
|
bindkey '^[OA' history-substring-search-up
|
|
bindkey '^[OB' history-substring-search-down
|
|
bindkey -M vicmd 'k' history-substring-search-up
|
|
bindkey -M vicmd 'j' history-substring-search-down
|
|
|
|
# if in tmux launch skim in tmux pane
|
|
[[ ${+TMUX} == 1 ]] \
|
|
&& SKIM_TMUX=1
|
|
|
|
#load compinit
|
|
autoload -Uz compinit
|
|
|
|
typeset -i updated_at=$(date +'%j' -r ~/.zcompdump \
|
|
|| stat -f '%Sm' -t '%j' ~/.zcompdump)
|
|
|
|
# save time if completion cache has been update recently
|
|
if [ $(date +'%j') != $updated_at ]; then
|
|
compinit -u
|
|
else
|
|
compinit -C
|
|
fi
|
|
|
|
# Case insens only when no case match; after all completions loaded
|
|
zstyle ':completion:*' matcher-list \
|
|
"" 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
|
|
|
# Auto rehash for new binaries
|
|
zstyle ':completion:*' rehash true
|
|
|
|
|
|
# remove duplicates from paths
|
|
typeset -U path
|
|
typeset -U fpath
|
|
|
|
# keep shell state frozen
|
|
ttyctl -f
|