From baaa338e33a4db720a31ce5779bda81d8353a8a0 Mon Sep 17 00:00:00 2001 From: PHO Date: Thu, 24 Sep 2009 19:27:26 +0900 Subject: [PATCH] Auto commit by The Sugar System. --- dot-files/_zshrc | 66 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 8 deletions(-) diff --git a/dot-files/_zshrc b/dot-files/_zshrc index ea5b889..d5fdcf8 100644 --- a/dot-files/_zshrc +++ b/dot-files/_zshrc @@ -58,23 +58,72 @@ function _we_are_in_gnu_screen () { _prompt_base='%B[%n@%m] %{%(?.$fg[green].$fg[red])%}%#%{$reset_color%}%b ' if ( _we_are_in_gnu_screen ); then - # Magic escape sequence for GNU Screen to update their titles - # dynamically by grabbing prompt line. - #PROMPT=$'%{\ek\e\\%}'$_prompt_base - + # GNU Screen has a capability to set its window title by "ESC k + # {string} ESC \". We want to reset the title to `_' to show we + # aren't running any command now. PROMPT=$'%{\ek_\e\\%}'$_prompt_base else PROMPT=$_prompt_base fi -function preexec() { - if ( _we_are_in_gnu_screen ); then +function preexec() { # Hook + if { _we_are_in_gnu_screen } then + # Set the window title of GNU Screen. local cmd=${1[(wr)^(*=*|sudo|nice|env|time|-*|[0-9]*)]} printf "\ek$cmd\e\\" fi } -RPROMPT='%U%D{%m/%d}%u %U%D{%T}%u %U%~%u' +function chpwd() { # Hook + local dirinfo=$(print_directory_info) + + case $dirinfo in + "") + RPROMPT='%U%~%u';; + *) + RPROMPT="%U%~%u %U($dirinfo)%u";; + esac +} + +function print_directory_info() { + local vcs_type=$(print_vcs_type $(pwd)) + + case $vcs_type in + git) + git branch --no-color 2>/dev/null \ + | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/';; + hg) + hg branch 2>/dev/null;; + darcs-*) + # Delete `darcs-' at the beginning. + echo ${vcs_type#darcs-};; + *) + # Unknown + echo + esac +} + +function print_vcs_type() { + local absdir=$1 + + if [[ -d $absdir/.git ]] then + echo git + elif [[ -d $absdir/.hg ]] then + echo hg + elif [[ -d $absdir/_darcs ]] then + echo darcs-$(basename $absdir) + else + # Nothing. + if [[ $absdir = "/" ]] then + # This is the root directory so exit from the recursion. + echo + else + # Recurse to the parent dir. + print_vcs_type $(dirname $absdir) + fi + fi +} +chpwd HISTFILE="$HOME/.zhistory" HISTSIZE=6000000 @@ -116,7 +165,6 @@ if [ $(hostname) = "aria.cielonegro.org" ]; then alias pa='open -a NiseRingo.app' alias heboris='open /Applications/HeborisUEMac/exe/Heboris\ OpenGL.app' alias hengband='open ~/Applications/hengband*/Hengband*' - alias top='top -X -o cpu' fi if [ $(uname) = "Darwin" ]; then @@ -126,6 +174,8 @@ if [ $(uname) = "Darwin" ]; then alias la='ls -aw' alias l='ls -lw' alias lls='ls -law' + + alias top='/usr/bin/top -X -o cpu' else alias ls='ls -F' alias la='ls -a' -- 2.40.0