]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - zsh/rc
zsh: Fix TRAPINT to work with lines starting with -.
[config/dotfiles.git] / zsh / rc
diff --git a/zsh/rc b/zsh/rc
index fae7b4da97eeafdd9e711ac0692f52dedfb5bbce..c95c3760cd1796a094cdc7bd9ef220de5968e865 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -154,25 +154,26 @@ fi
 # running program.
 #
 # When a program is started preexec() sets the window's name to it; when it
-# stops precmd() resets the windows' name to 'zsh'.
+# stops precmd() resets the window's name to 'zsh'.
 #
 # It works with screen and xterm. If screen is running in X11 (DISPLAY is set)
-# and stumpwm is used (it's tested if stumpish is available) then the window
-# title is also set in stumpwm using stumpish.
+# and stumpwm is running then the window title is also set in stumpwm using
+# stumpish.
 #
 # If a command is run with sudo or if the shell is running as root then a ! is
 # added at the beginning of the command to make this clear. If a command is
-# running on a different computer with ssh a @ is added at the beginning.
+# running on a different computer with ssh a @ is added at the beginning. This
+# only works if the .zshrc on the server also uses this command.
 if [[ $TERM == screen* || $TERM == xterm* ]]; then
-    # Set to a non empty value to reset the window name in the next precmd()
-    # call.
+    # Is set to a non empty value to reset the window name in the next
+    # precmd() call.
     window_reset=yes
-    # Set to a non empty value when the stump window manager is available.
-    which stumpwm &> /dev/null
+    # Is set to a non empty value when the stump window manager is running.
+    ps aux | grep -q stumpwm | grep -v grep
     if [[ $? -eq 0 ]]; then
         window_stumpwm=yes
     fi
-    # Set to a non empty value when the shell is running as root.
+    # Is set to a non empty value when the shell is running as root.
     if [[ $(id -u) -eq 0 ]]; then
         window_root=yes
     fi
@@ -194,7 +195,7 @@ if [[ $TERM == screen* || $TERM == xterm* ]]; then
         # Ignore often used commands which are only running for a very short
         # time. This prevents a "blinking" name when it's changed to "cd" for
         # example and then some milliseconds later back to "zsh".
-        [[ $program_name == (cd*|ls|la|ll|clear) ]] && return
+        [[ $program_name == (cd*|ls|la|ll|clear|c) ]] && return
 
         # Change my shortcuts so the real name of the program is displayed.
         case $program_name in
@@ -218,8 +219,8 @@ if [[ $TERM == screen* || $TERM == xterm* ]]; then
             program_name=!$program_name
         fi
 
-        # Add an at mark at the beginning if running ssh on a different
-        # computer.
+        # Add an at mark at the beginning if running through ssh on a
+        # different computer.
         if [[ -n $SSH_CONNECTION ]]; then
             program_name="@$program_name"
         fi
@@ -269,6 +270,15 @@ if [[ $TERM == screen* || $TERM == xterm* ]]; then
     add-zsh-hook precmd window_precmd
 fi
 
+# If the window naming feature is used (see above) then use ".zsh" (leading
+# dot) as title name after running clear so it's clear to me that the window
+# is empty. I open so much windows that I don't know in which I have something
+# important. This helps me to remember which windows are empty (I run clear
+# after I finished my work in a window).
+if [[ -n $window_reset ]]; then
+    alias clear='clear; window_title .zsh'
+fi
+
 
 # COMPLETION SETTINGS
 
@@ -326,9 +336,12 @@ zstyle ':completion:*:(hg|git)*:*' ignore-line yes
 # 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.
 TRAPINT() {
     # Store the current buffer in the history.
-    zle && print -s $BUFFER
+    zle && print -s -- $BUFFER
 
     # Return the default exit code so zsh aborts the current command.
     return $1
@@ -355,6 +368,7 @@ alias -g ....='../../..'
 alias -g .....='../../../..'
 
 # Shortcuts for often used programs.
+alias c='clear'
 alias e='elinks'
 alias g='git'
 alias m='mutt'