## -*- mode:sh -*- # ## Zsh specific options ZCACHE=~/.cache/zsh/ [ ! -e "$ZCACHE" ] && mkdir -p "$ZCACHE" ##============================================================================== ## History options HISTFILE="$ZCACHE/history" HISTSIZE=1000 SAVEHIST=1000 setopt hist_ignore_all_dups setopt hist_ignore_space # Commands beginning with a space won't be recorded. setopt appendhistory ##============================================================================== ## Misc ## Not recommended. # setopt completealiases setopt autocd # When only dirname is entered, then auto cd to it. ## ??? # setopt extendedglob nomatch notify ## Usually not needed if pc speaker is off. unsetopt beep ## Turn of ^s so it does not freeze output. unsetopt flowcontrol ##============================================================================== ## Directory stack ## We use expanded path for DIRSTACKFILE since we need to locate it for the ## zshcd script. DIRSTACKFILE="$HOME/.cache/zsh/dirs" if [[ -f $DIRSTACKFILE ]] && [[ $#dirstack -eq 0 ]]; then dirstack=( ${(f)"$(< $DIRSTACKFILE)"} ) [[ -d $dirstack[1] ]] && cd $dirstack[1] fi chpwd() { print -l $PWD ${(u)dirstack} >$DIRSTACKFILE } DIRSTACKSIZE=20 setopt autopushd pushdsilent pushdtohome setopt pushdignoredups ## This reverts the +/- operators. setopt pushdminus ##============================================================================== ## Completion ## Custom completion fpath=(~/.shell.d/completion $fpath) autoload -Uz compinit # compinit compinit -d "$ZCACHE/compdump" zstyle ':completion:*' menu select zstyle ':completion:*:descriptions' format '%U%B%d%b%u' zstyle ':completion:*:commands' rehash true # New binaries in path get recognized. zstyle ':completion:*' completer _complete _match _approximate ## Allow approximate zstyle ':completion:*:match:*' original only zstyle ':completion:*:approximate:*' max-errors 1 numeric ## Tab completion for PID :D -- Useless ? # zstyle ':completion:*:*:kill:*' menu yes select # zstyle ':completion:*:kill:*' force-list always ## ??? # zstyle :compinstall filename "$HOME/.zshrc" ##============================================================================== ## TESTING ## Remove RPS1 after setopt transient_rprompt ## Color vars autoload -U colors terminfo colors ## Zargs powaa autoload -U zargs ##============================================================================== ## Prompt autoload -U promptinit promptinit prompt adam2 ##============================================================================== ## fzf (external) if [ -f /usr/share/fzf/key-bindings.zsh ]; then . /usr/share/fzf/key-bindings.zsh bindkey '^T' transpose-chars bindkey '\er' fzf-file-widget fi