On 2017-11-10 19:15, Steven Haigh wrote:
On Saturday, 11 November 2017 1:48:23 PM AEDT jdow wrote:
On 2017-11-10 16:38, ToddAndMargo wrote:
On 11/10/2017 04:21 PM, jdow wrote:
On 2017-11-10 15:14, ToddAndMargo wrote:
Dear List,

Ever cat a binary file by accident and your
terminal gets all screwed up.

I had a developer on the Perl 6 chat line give me
a tip on how to unscrew your terminal and set it
back to normal.  (He way helping me do a binary
read from the keyboard.)

stty sane^j

Note: it is <ctr><J>, not "enter".

-T

Make "\033]0;" the first bit of your prompt. Never worry about it again.

ESC-0 sets the terminal to have no attribute bits set. So it clears funny
display. I've had that as a standard part of my prompts for decades, even
back in the CP/M days.
{^_^}   Joanne

Sweet!

Here is what I have in my .bash_profile file:


if [ "$PS1" ]; then
    # extra [ in front of \u unconfuses confused Linux VT parser
    PS1="\e[0 [[\\u@\\h:\\l \\w]\\$ "
fi

For what its worth, I've been using this for years:
PS1="\[\033[01;37m\]\$? \$(if [[ \$? == 0 ]]; then echo \"\[\033[01;32m\]
\342\234\223\"; else echo \"\[\033[01;31m\]\342\234\227\"; fi) $(if [[ ${EUID}
== 0 ]]; then echo '\[\033[01;31m\]\h'; else echo '\[\033[01;32m\]\u@\h'; fi)\
[\033[01;34m\] \w \$\[\033[00m\] "

Stick it all on one line. Add the \e[0 in front, and that'd be pretty cool :)

So I went through some documentation. Now I am back up to speed for ANSI escape sequences and the theoretical interaction of PROMPT_COMMAND and PS1. PROMPT_COMMAND is run then PS1 is displayed. PROMPT_COMMAND already has the \e0m in it. \e is bash for escape. There is a list of the things in man bash, of course. "\e[0m[\\u@\\h: \\w]\\$ " is what I should have used. The m makes it do its thing. Gawd it's a long time since I did something with VT commands directly. It all leaked out! Don't get old.

{^_^}

Reply via email to