X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/aef4b18791e08d4f665da6d327e0b7c37aa4a797..refs/heads/lazyvim:/zshrc diff --git a/zshrc b/zshrc index 54dba89..b342185 100644 --- a/zshrc +++ b/zshrc @@ -1,44 +1,66 @@ -# Lines configured by zsh-newuser-install -HISTFILE=~/.histfile -HISTSIZE=10000 -SAVEHIST=20000 -setopt histignoredups -setopt histignorespace -setopt appendhistory - -setopt autocd -setopt beep +# Path to config files +ZSH=$XDG_CONFIG_HOME/zsh +ZSH_DATA=$XDG_DATA_HOME/zsh +ZSH_CACHE=$XDG_CACHE_HOME/zsh +[[ ! -d "$ZSH" ]] && echo "Missing config dir: '$ZSH'" && return +[[ ! -d "$ZSH_CACHE" ]] && echo "Missing cache dir: '$ZSH_CACHE'" && return +[[ ! -d "$ZSH_DATA" ]] && echo "Missing data dir: '$ZSH_DATA'" && return + +# load my functions +typeset -U fpath # make fpath a unique array +[[ -d $ZSH/functions ]] && fpath=($ZSH/functions $fpath) +autoload -U ${fpath[1]}/*(:t) # loads all functions in the first element of fpath + +# Load all of the config files in $ZSH/lib that end in .zsh +for config_file ($ZSH/lib/*.zsh); do + source $config_file +done + +# Set name of the theme to load. +# Look in $ZSH/themes +ZSH_THEME="ramsi" +[[ -f "$ZSH/themes/${ZSH_THEME}.zsh-theme" ]] && source "$ZSH/themes/${ZSH_THEME}.zsh-theme" + +# initialise completion +autoload -U compinit; compinit -d "$ZSH_CACHE/zcompdump" + +# miscelaneous options setopt extendedglob -setopt nomatch +setopt nonomatch # if glob does not match, pass it to the command +setopt numeric_glob_sort # sort numerically not lexically setopt noclobber # don't allow overwriting files with '>', use '>!' instead +setopt notify setopt rcquotes # echo 'don''t'; prints don't +setopt dvorak # correct_all uses dvorak +setopt rematch_pcre # use perl regexp -unsetopt notify - -bindkey -e -# End of lines configured by zsh-newuser-install -# The following lines were added by compinstall -zstyle :compinstall filename '/home/ramsi/.zshrc' +# disable flow control +setopt noflowcontrol +stty -ixon -autoload -Uz compinit -compinit -# End of lines added by compinstall +# populate path (order matters) +typeset -U path # make path a unique array +# osx gnu utils (installed via brew) +[[ -d /usr/local/opt/coreutils/libexec/gnubin ]] && path=(/usr/local/opt/coreutils/libexec/gnubin $path) +[[ -d /usr/local/opt/findutils/libexec/gnubin ]] && path=(/usr/local/opt/findutils/libexec/gnubin $path) +[[ -d /usr/local/opt/gnu-sed/libexec/gnubin ]] && path=(/usr/local/opt/gnu-sed/libexec/gnubin $path) +# osx pip 3.7 install +[[ -d ~/Library/Python/3.7/bin ]] && path=(~/Library/Python/3.7/bin $path) +# personal scripts +[[ -d ~/.local/bin ]] && path=(~/.local/bin $path) +[[ -d ~/bin ]] && path=(~/bin $path) +# android +[[ -d /opt/android-sdk ]] && path=($path /opt/android-sdk/platform-tools) # source aliases -[[ -f ~/.bash_aliases ]] && source ~/.bash_aliases - -# set up prompt -autoload -U promptinit -promptinit -prompt walters - -# make cd act like pushd -DIRSTACKSIZE=10 -setopt autopushd # cd acts like pushd -setopt pushdminus # inverts the meaning of cp -1 and cp +1 -setopt pushdsilent # don't print dir stack everytime -setopt pushdtohome # pushd with no argumens pushes to ~ -alias dh='dirs -v' - -# set search path for cd -cdpath=( ~ /mnt ) +[[ -f $XDG_CONFIG_HOME/aliases ]] && source $XDG_CONFIG_HOME/aliases +for alias_file ($ZSH/aliases/*.zsh); do + source $alias_file +done + +# set up a few named directories +hash -d fook=/mnt/fook +hash -d src=~/src + +# wio named dirs +hash -d wio=~/src/wio