On Thu, Sep 07, 2023 at 04:03:39PM +0200, Gioele Barabucci wrote: > On 07/09/23 15:50, Greg Wooledge wrote: > > On Thu, Sep 07, 2023 at 03:46:23PM +0200, Gioele Barabucci wrote: > > > On 07/09/23 15:00, alex xmb ratchev wrote: > > > > u have to \[ esc-seq \] > > > > eg inside \[ and \] > > > > > > > > PS1=$'\u\[\e[1m\]\h\[\e[0m- ' > > > > > > > > should display hostname bold > > > > > > Thanks for the suggestion, but adding \] does not really fix the problem, > > > it > > > just masks it in many cases (better than nothing). > > > > The \[ \] wrappings are required. They're not "masking" the problem. > > Your prompt is literally set incorrectly without them. > > Agreed that \] is required. With "masking" I mean that the use of \] > prevents the problem I'm referring to from showing up easily. But the > problem is still there even when \] is used. > > The following snippet shows that, even with the final \], Bash produces the > same erroneous output and miscalculates the cursor position (it just needs a > longer prompt): > > $ long_name="$(printf 'abcdef0123456789/%.0s' {0..20})" > $ mkdir -p /tmp/$long_name > $ cd /tmp/$long_name > $ PS1=$'\n\[\e[1m\]\w\[\e[m\] \$ ' > > Now press the up arrow, then the down arrow) > > Regards, > > -- > Gioele Barabucci
I can't really reproduce the issue that you are seeing, but isn't the \n (the newline) also a non-printable character that should be wrapped in \[ \], since it has no width? -- Andreas (Kusalananda) Kähäri Uppsala, Sweden .