screen+zsh

优质
小牛编辑
133浏览
2023-12-01

~/.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 zshlocal -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}]"