# 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
}
# Sets the window title. Works with screen, xterm and rxvt.
- window_title() {
- if [[ $TERM == screen* ]]; then
+ if [[ $TERM == screen* ]]; then
+ window_title() {
print -n "\ek$1\e\\"
-
- elif [[ $TERM == xterm* || $TERM == rxvt* ]]; then
+ }
+ elif [[ $TERM == xterm* || $TERM == rxvt* ]]; then
+ window_title() {
print -n "\e]2;$1\e\\"
- fi
- }
+ }
+ fi
# Add the preexec() and precmd() hooks.
add-zsh-hook preexec window_preexec
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
# 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() {