]> git.rmz.io Git - dotfiles.git/blobdiff - zshrc
zsh: use $'' to interpret \n in prompt
[dotfiles.git] / zshrc
diff --git a/zshrc b/zshrc
index a181dbd5f89195985026376a1cf92f214fb2322c..e2dba1a71c396f62601e4c196b7204f722e19f9c 100644 (file)
--- a/zshrc
+++ b/zshrc
@@ -1,68 +1,69 @@
-# configure history
-HISTFILE=~/.histfile
-HISTSIZE=1000
-SAVEHIST=2000
-setopt hist_ignore_dups
-setopt hist_ignore_space
-setopt append_history
-setopt inc_append_history
-setopt extended_history
+# 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
 
-# misc
-setopt beep
-setopt extendedglob
-setopt nomatch
-setopt noclobber    # don't allow overwriting files with '>', use '>!' instead
-setopt notify
-setopt rcquotes     # echo 'don''t'; prints don't
-
-# key bindings
-bindkey -e  # emacs key bindings, vi is weird
-[[ -r ~/.zsh/bindkeyrc ]] && source ~/.zsh/bindkeyrc
-
-# Completion
-zstyle :compinstall filename '/home/ramsi/.zshrc'
-zstyle ':completion:*' list-colors ''
-
-setopt complete_in_word     # allow completion in the middle of a word
-autoload -Uz compinit
-compinit
-
-# populate path
+# populate path (order matters)
 typeset -U path     # make path a unique array
+# osx gnu utils (installed via brew)
+if (( $+commands[brew] )); then
+    for pkg in coreutils findutils gnu-sed make; do
+        [[ -d $(brew --prefix $pkg)/libexec/gnubin ]] && path=($(brew --prefix $pkg)/libexec/gnubin $path)
+    done
+fi
+# 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)
 
 # load my functions
 typeset -U fpath    # make fpath a unique array
-[[ -d ~/.zsh/functions ]] && fpath=(~/.zsh/functions $fpath)
+[[ -d $ZSH/functions ]] && fpath=($ZSH/functions $fpath)
 autoload -U ${fpath[1]}/*(:t)   # loads all functions in the first element of fpath
 
-# source aliases
-[[ -f ~/.aliasesrc ]] && source ~/.aliasesrc
+# 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"
 
-# set up prompt
-autoload -U colors && colors
-PROMPT="%(?..%{$fg_bold[white]%}[%?])%{$reset_color%}[%D{%k:%M} %n@%{$fg[green]%}%m%{$reset_color%}]%# "
-RPROMPT="%{$fg[green]%}%~%{$reset_color%}"
+# initialise completion
+autoload -U compinit; compinit -d "$ZSH_CACHE/zcompdump"
 
-# make cd act like pushd
-DIRSTACKSIZE=10          # number of dirs to remember
-setopt auto_pushd        # cd acts like pushd
-setopt pushd_minus       # inverts the meaning of cp -1 and cp +1
-setopt pushd_silent      # don't print dir stack everytime
-setopt pushd_to_home     # pushd with no argumens pushes to ~
-setopt pushd_ignore_dups # ignore dups in pushd/cd
-alias dh='dirs -v'       # show numbers with dirs
+# miscelaneous options
+setopt extendedglob
+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
 
-setopt auto_cd           # if no command matches the input, try to cd into it; .. = cd ..
+# disable flow control
+setopt noflowcontrol
+stty -ixon
 
-# set search path for cd
-cdpath=(~ /mnt)
+# source aliases
+[[ -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 Skaro=/mnt/Skaro
-hash -d ccr=~/ccr
+hash -d fook=/mnt/fook
 hash -d src=~/src
-hash -d chroot_testing=/buildsystem/testing/buildroot
-hash -d chroot_master=/buildsystem/master/buildroot
-hash -d chroot_lib32=/buildsystem/lib32/buildroot
+
+# fpp named dirs
+hash -d evk=~/src/fpp/evk
+hash -d fpp=~/src/fpp