]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - zsh/rc
setup.sh: Only setup colordiff if installed.
[config/dotfiles.git] / zsh / rc
diff --git a/zsh/rc b/zsh/rc
index 49843bc62c59c977eae50c00119d125ff5d51421..8c76e62d8655d206f118b091a8b404d312321ab7 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -93,10 +93,10 @@ setopt incappendhistory
 setopt histignoredups
 # Vim like completions of previous executed commands (also enter Vi-mode). If
 # called at the beginning it just recalls old commands (like cursor up), if
-# called after typing something only likes starting with the typed are
+# called after typing something only lines starting with the typed are
 # returned. Very useful to get old commands quickly. Thanks to Mikachu in #zsh
-# on Freenode (2010-01-17 12:47) for the information how to a function with
-# bindkey.
+# on Freenode (2010-01-17 12:47) for the information how to a use function
+# with bindkey.
 zle -N my-vi-history-beginning-search-backward
 my-vi-history-beginning-search-backward() {
     local not_at_beginning_of_line
@@ -106,7 +106,7 @@ my-vi-history-beginning-search-backward() {
 
     zle history-beginning-search-backward
 
-    # Start Vi-mode and stay at the same position (Vi-mode modes one left,
+    # Start Vi-mode and stay at the same position (Vi-mode moves one left,
     # this counters it).
     zle vi-cmd-mode
     if [[ -n $not_at_beginning_of_line ]]; then
@@ -380,9 +380,14 @@ TRAPINT() {
 }
 
 # Colorize stderr. Very useful when looking for errors. Thanks to
-# http://gentoo-wiki.com/wiki/Zsh
-exec 2>>(while read line; do
-    print '\e[91m'${(q)line}'\e[0m' > /dev/tty; print -n $'\0'; done &)
+# 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 some interactive stderr output, but in those
+# cases the E alias can be used as workaround.
+exec 2>>(while read -r line; do
+    printf '\e[91m%s\e[0m\n' "$line"
+    print -n $'\0';
+done &)
 
 # Make sure aliases are expanded when using sudo.
 alias sudo='sudo '