+# If ^C is pressed while typing a command, add it to the history so it can be
+# easily retrieved later and then abort like ^C normally does. This is useful
+# when I want to abort an command to do something in between and then finish
+# typing the command.
+#
+# Thanks to Vadim Zeitlin <vz-zsh@zeitlins.org> for a fix (--) so lines
+# starting with - don't cause errors; and to Nadav Har'El
+# <nyh@math.technion.ac.il> for a fix (-r) to handle whitespace/quotes
+# correctly, both on the Zsh mailing list.
+TRAPINT() {
+ # Store the current buffer in the history.
+ zle && print -s -r -- $BUFFER
+
+ # Return the default exit code so Zsh aborts the current command.
+ return $1
+}
+
+# Colorize stderr. Very useful when looking for errors. Thanks to
+# http://gentoo-wiki.com/wiki/Zsh for the basic script and Mikachu in #zsh on
+# Freenode (2010-03-07 04:03) for some improvements (-r, printf). It's not yet
+# perfect and doesn't work with su and git for example, but it can handle most
+# interactive output quite well (even with no trailing new line) and in those
+# cases the E alias can be used as workaround.
+exec 2>>(while read -r -k -u 0 line; do
+ printf '\e[91m%s\e[0m' "$line";
+ print -n $'\0';
+done &)
+
+# Load aliases and similar functions also used by other shells.
+if [[ -f ~/.shell/aliases ]]; then
+ . ~/.shell/aliases
+fi
+