screen+zsh
在~/.zshrc
文件中加入如下内容:
#screen integration to set caption bar dynamically
function title {
if [[ $TERM == "screen" || $TERM == "screen.linux" ]]; then
# Use these two for GNU Screen:
print -nR $'\033k'$1$'\033'\\\
print -nR $'\033]0;'$2$'\a'
elif [[ $TERM == "xterm" || $TERM == "urxvt" ]]; then
# Use this one instead for XTerms:
print -nR $'\033]0;'$*$'\a'
#trap 'echo -ne "\e]0;$USER@$HOSTNAME: $BASH_COMMAND\007"' DEBUG
fi
}
#set screen title if not connected remotely
function precmd {
title "`print -Pn "%~" | sed "s:\([~/][^/]*\)/.*/:\1...:"`" "$TERM $PWD"
echo -ne '\033[?17;0;127c'
}
function preexec {
emulate -L zsh
local -a cmd; cmd=(${(z)1})
if [[ $cmd[1]:t == "ssh" ]]; then
title "@"$cmd[2] "$TERM $cmd"
elif [[ $cmd[1]:t == "sudo" ]]; then
title "#"$cmd[2]:t "$TERM $cmd[3,-1]"
elif [[ $cmd[1]:t == "for" ]]; then
title "()"$cmd[7] "$TERM $cmd"
elif [[ $cmd[1]:t == "svn" ]]; then
title "$cmd[1,2]" "$TERM $cmd"
else
title $cmd[1]:t "$TERM $cmd[2,-1]"
fi
}
在~/.screenrc
文件中加入如下内容:
hardstatus alwayslastline "%{=b}%{-b}%{R}[%{=b B}%-w%{=b BK}%>%n %t%{-}%+w%{-b}%< %=%{R}][%{-b}%{M}%m-%d %D %{G}%c%{R}]"