# Use colorized output, necessary for prompts and completions.
autoload -U colors && colors
-# Some shortcuts for colors.
+# Some shortcuts for colors. The %{...%} tells zsh that the data in between
+# doesn't need any space, necessary for correct prompt draw.
local red="%{${fg[red]}%}"
local blue="%{${fg[blue]}%}"
local green="%{${fg[green]}%}"
m)
program_name=mutt
;;
- v|vi)
+ v)
program_name=vim
;;
esac
zstyle ':completion:*:functions' ignored-patterns '_*'
# Ignore parent directory.
zstyle ':completion:*:(cd|mv|cp):*' ignore-parents parent pwd
-# When unsetting variables make sure every variable name is only suggested
-# once.
-zstyle ':completion:*:unset:*' ignore-line yes
-# When working with Mercurial and Git don't complete the same file multiple
-# times. Very useful when completing file names.
-zstyle ':completion:*:(hg|git)*:*' ignore-line yes
+# Always complete one value (file name) only once in the current line. This
+# makes it easy to complete multiple values because I can just press tab to
+# get all possible values. Otherwise I would have to skip the first value
+# again and again.
+zstyle ':completion:*' ignore-line yes
+# Except for mv and cp, because I often want to use to similar names, so I
+# complete to the same and change it.
+zstyle ':completion:*:(mv|cp):*' ignore-line no
# CUSTOM ALIASES AND FUNCTIONS
# typing the command.
#
# Thanks to Vadim Zeitlin <vz-zsh@zeitlins.org> for a fix (--) so lines
-# starting with - don't cause errors.
+# 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 -- $BUFFER
+ zle && print -s -r -- $BUFFER
# Return the default exit code so Zsh aborts the current command.
return $1
# OS SPECIFIC SETTINGS
-if [[ $(uname) == Linux ]]; then
+local uname=$(uname)
+
+if [[ $uname == Linux ]]; then
# Settings when creating Debian packages.
DEBEMAIL=simon@ruderich.org
export DEBEMAIL
DEBFULLNAME='Simon Ruderich'
export DEBFULLNAME
-elif [[ $(uname) == Darwin ]]; then # Mac OS X
+elif [[ $uname == Darwin ]]; then # Mac OS X
# Store the current clipboard in CLIPBOARD before every command so it can
# be used in commands.
os_darwin_preexec() {