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