X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=dot-files%2F_zshrc;h=eaf76574fb788c92b3d7c704bc9e078b9b424d96;hb=3787269b0f41f792c3e90c1bdac543bfb8abf7c7;hp=936c5316c83dc0af3601afd84b8976a2e2020730;hpb=46982012f4572c1f3db48fc90a1201ab792beda2;p=sugar.git diff --git a/dot-files/_zshrc b/dot-files/_zshrc index 936c531..eaf7657 100644 --- a/dot-files/_zshrc +++ b/dot-files/_zshrc @@ -58,14 +58,61 @@ 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 -RPROMPT='%U%D{%m/%d}%u %U%D{%T}%u %U%~%u' +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 +} + +function chpwd() { # Hook + local dirinfo=$(print_directory_info $(pwd)) + + case $dirinfo in + "") + RPROMPT='%U%~%u';; + *) + RPROMPT="%U%~%u %U($dirinfo)%u";; + esac +} + +function print_directory_info() { + local absdir=$1 + + if [[ -d $absdir/.git ]] then + # Git + git branch --no-color 2>/dev/null \ + | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/' + + elif [[ -d $absdir/.hg ]] then + # Hg + hg branch 2>/dev/null + + elif [[ -d $absdir/_darcs ]] then + # Darcs + basename $absdir + + else + # Unknown. + if [[ $absdir = "/" ]] then + # This is the root directory so exit from the recursion. + echo + else + # Recurse to the parent dir. + print_directory_info $(dirname $absdir) + fi + fi +} +chpwd HISTFILE="$HOME/.zhistory" HISTSIZE=6000000 @@ -99,6 +146,7 @@ alias aria-emacs="ssh -f -X admin@aria.cielonegro.org emacs" alias g1="ssh pho@g1.cuenote.jp" alias g2="ssh pho@g2.cuenote.jp" +alias mana="ssh pho@mana" if [ $(hostname) = "aria.cielonegro.org" ]; then alias safari="open -a Safari" @@ -115,6 +163,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'