тайтлы, терминал, скрин и маленькие радости.

Dec 30, 2007 05:43

Нарисовал таки себе precmd() и preexec() корректно работающие с эскейп последовательностями и и прочими спецсимволами.
Вроде пустячок, но уже два человека проявили интерес, поэтому посчу.

Хуки выставляют заголовок терминала и скрина (если они есть).
Что крайне удобно - и при ssh сесии куда-то далеко меняет заголовок первого из скринов, в который завёрнута сессия.

local title_prompt=‘%n@%m:%~ ’

precmd()
{
[[ -t 1 ]] || return 0 #stdout is tty or gtfo

[[ -n $DISPLAY ]] && print -Pn “\e]2;$title_prompt\a” #update term emulator title
[[ $TERM -eq “screen” ]] && print -Pn “\ek$title_prompt\e\\” #update screen title
}

preexec()
{
[[ -t 1 ]] || return 0

if [[ -n $DISPLAY ]];then
print -nP “\e]2;$title_prompt”
print -rn $1
print -n “\a”
fi
if [[ $TERM -eq “screen” ]];then
print -nP “\ek$title_prompt”
print -rn $1
print -n “\e\\”
fi
}

ps, для интересующихся - zshrc целиком, хотя ценного там пока немного - стыдно сказать, но я до сих пор даже line-editor ниасилил.

interface, tip, efficiency, term

Previous post Next post
Up