# Enable zsh's extended glob abilities.
setopt extendedglob
-# Don't exit if <C-d> is pressed.
+# Don't exit if <C-D> is pressed. Prevents exiting the shell by accident (e.g.
+# pressing <C-D> twice).
setopt ignoreeof
# Make sure every entry in $fpath is unique.
typeset -U fpath
# ~/.zsh/functions/completion is a symbolic link to the Completion directory
-# of a Zsh CVS checkout. Use it to get the newest completions if available.
+# of a Zsh Git checkout. Use it to get the newest completions if available.
if [[ -d ~/.zsh/functions/completion ]]; then
fpath=(~/.zsh/functions/completion/*/*(/) $fpath)
fi
# if not 0.
#
# The prompt is in green and blue to make easily detectable, the error exit
-# code in red and bold and the job count in yellow.
+# code in red and bold and the job count in yellow. Designed for dark
+# terminals.
#
# Thanks to Adam's prompt for the basic idea of this prompt.
prompt_precmd() {
host="%U${host}%u"
fi
- # Number of background processes in yellow.
+ # Number of background processes in yellow if not zero.
local background="%(1j.${yellow}%j${default}.)"
- # Exit code in bright red if not zero.
+ # Exit code in bright red in parentheses if not zero.
local exitcode="%(?..(${red}%B%?%b${default}%) )"
# Prefix characters in first and second line.
precmd_functions+=(prompt_precmd)
-# When screen, tmux, xterm or rxvt is used set the name of the window to the
-# currently running program.
+# When GNU screen, tmux, xterm or rxvt is used set the name of the window to
+# the currently running program.
#
# When a program is started preexec() sets the window's name to it; when it
# stops precmd() resets the window's name to 'zsh'. 'fg' is supported and sets
# the window's name to the resumed job.
#
-# It works with screen, tmux, xterm and rxvt.
+# It works with GNU screen, tmux, xterm and rxvt.
#
# If a command is run with sudo or if the shell is running as root then a ! is
# added at the beginning of the command to make this clear. If a command is
# Get the program name with its arguments.
local program_name=$1
- # When sudo is used use real program name instead, but with an
+ # When sudo is used, use real program name instead, but with an
# exclamation mark at the beginning (handled below).
local program_sudo=
if [[ $program_name == sudo* ]]; then
window_reset=
}
- # Sets the window title. Works with screen, tmux (which uses screen as
- # TERM), xterm and rxvt. (V) escapes all non-printable characters. Thanks
+ # Sets the window title. Works with GNU screen, tmux (which uses screen as
+ # TERM), xterm and rxvt. (V) escapes all non-printable characters, thanks
# to Mikachu in #zsh on Freenode (2010-08-07 17:09 CEST).
if [[ $TERM == screen* ]]; then
window_title() {
alias -g L='2>&1 | less'
alias -g LS='2>&1 | less -S' # -S prevents wrapping of long lines
alias -g D='2>&1 | colordiff | less'
-# Global aliases for often used commands in the command line.
+# Global aliases for often used commands.
alias -g A='| awk'
alias -g G='| grep'
alias -g H='| head'
# LOAD ADDITIONAL CONFIGURATION FILES
# Configuration option for rc.local to use GNU screen/tmux. By default GNU
-# screen is used. Possible values: screen, tmux.
+# screen is used. Possible values: screen, tmux and empty (no value).
use_multiplexer=screen
source_config ~/.zsh/rc.local
# cases it doesn't work, the E alias can be used as workaround.
#
# Moved in the "run commands" section to prevent one unnecessary zsh process
-# when starting screen/tmux (see above).
+# when starting GNU screen/tmux (see above).
exec 2>>(while read -r -k -u 0 line; do
printf '\e[91m%s\e[0m' "$line";
print -n $'\0';
done &)
-# Run the following programs every 4 hours.
+# Run the following programs every 4 hours (and when zsh starts).
PERIOD=14400
periodic() {
# Display fortunes.