_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
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
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'