X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;ds=inline;f=zsh%2Frc;h=5cad9c8e77c39aa65f46fa446c34c55f0ca3dba8;hb=2c96f7708cecf5f7eebf8e3349eb8f2a8eee1694;hp=5889186973ea19dde4a1a92375611f976c478526;hpb=2253f9ef9bead0494d3fea83581007c7acd5a357;p=config%2Fdotfiles.git
diff --git a/zsh/rc b/zsh/rc
index 5889186..5cad9c8 100644
--- a/zsh/rc
+++ b/zsh/rc
@@ -16,7 +16,7 @@
# along with this file. If not, see .
-source_debug ". ~/.zsh/rc"
+source_debug '. ~/.zsh/rc'
# HELPER FUNCTIONS
@@ -68,7 +68,8 @@ setopt correct
# Enable zsh's extended glob abilities.
setopt extendedglob
-# Don't exit if is pressed.
+# Don't exit if is pressed. Prevents exiting the shell by accident (e.g.
+# pressing twice).
setopt ignoreeof
@@ -94,7 +95,7 @@ bindkey -a -r '^[OA' '^[OB' '^[OC' '^[OD' '^[[A' '^[[B' '^[[C' '^[[D'
# 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
@@ -346,7 +347,8 @@ precmd_functions+=(longrun_precmd)
# 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() {
@@ -382,9 +384,9 @@ 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.
@@ -420,14 +422,14 @@ ${bottom_prefix}${user}@${host} ${background}%# ${exitcode}"
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
@@ -451,7 +453,7 @@ if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then
# 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
@@ -541,8 +543,8 @@ if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; 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() {
@@ -728,7 +730,7 @@ alias -g EN='2>/dev/null'
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'
@@ -804,17 +806,15 @@ fi
if [[ $OSTYPE == linux* ]]; then
# Settings when creating Debian packages.
- DEBEMAIL=simon@ruderich.org
- export DEBEMAIL
- DEBFULLNAME='Simon Ruderich'
- export DEBFULLNAME
+ export DEBEMAIL=simon@ruderich.org
+ export DEBFULLNAME='Simon Ruderich'
fi
# 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
@@ -836,9 +836,9 @@ if [[ $TERM != dumb && $TERM != linux && -z $STY && -z $TMUX ]]; then
# As we exec later we have to set the title here.
if [[ $use_multiplexer = screen ]]; then
- window_preexec "screen"
+ window_preexec screen
elif [[ $use_multiplexer = tmux ]]; then
- window_preexec "tmux"
+ window_preexec tmux
fi
# Create a new session if none is running.
@@ -866,22 +866,22 @@ fi
# 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';
+ 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.
(( $+commands[fortune] )) && fortune -ac
# Display reminders.
- (( $+commands[rem] )) && [ -f ~/.reminders ] && rem -h
+ (( $+commands[rem] )) && [[ -f ~/.reminders ]] && rem -h
}
-source_debug ". ~/.zsh/rc (done)"
+source_debug '. ~/.zsh/rc (done)'
# vim: ft=zsh