Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Setting the terminal title: problem with percent signs



Hi,

I have the following in my .zshrc which set the terminal title to "*cmd"
when cmd is executed and to "(cmd)" when execution of cmd is over.

__last_cmd=
preexec () {
    __last_cmd=$1
    print -Pn "\e]0;*$__last_cmd\a"
}
precmd () {
    if [[ -n $__last_cmd ]]
    then
        print -Pn "\e]0;($__last_cmd)\a"
    fi
}


(print -Pn "\e]0;$str\a"  change the terminal title to $str, see 'man
console_codes')
It works well, except when there are percent signs in the last command.
For example if I type "echo 100%", the terminal title becomes "(echo 100)"
instead of "(echo 100%)" and the string " ]0;*echo 100100%" appears in the
terminal.

How can I do to make it work even with percent signs in the command?

Thank you

Guillaume Brunerie


Messages sorted by: Reverse Date, Date, Thread, Author