libreadline history lines combine
- by jettero
This has been driving me crazy for about three years. I don't know how to fully describe the problem, but I think I can finally describe a way to recreate it. Your milage may vary. I have a mixture of ubuntu server and desktop machines of various versions and a few gentoo machines with various states of disrepair. They all seem to kindof do their own thing, although with similarities.
Try this and let me know if you see the same thing.
pop open two xterms (TERM=xterm)
resize one so they're not the same
issue screen -R test1 in one (TERM=screen)
and screen -x test1 in the other
hooray, typing in one shows up in the other; although notice that their different size produces artifacts and things
issue a couple commands in your shell
hit ^AF in the one that doesn't fit quite right, now it fits!!
scroll back over the history a little
goto 6
Eventually you'll notice a couple history lines combine. If you don't, then it's something unique to my setup, which spans various distributions and computers; so that's a confusing concept to me.
If you see the thing I'm seeing then this:
bash$ ls -al
bash$ ps auxfw
becomes this:
bash$ ls -al; ps auxfw
It doesn't happen every time. I have to really play with it — unless I don't want it to happen, then it always does. On some systems (or combinations), I get a line separator like the example above. On some systems, I do not. That I get the line separator on some systems seems to indicate to me that bash supports this behavior. Its history is entirely handled by libreadline and after perusing (ie, carefully reading) the man pages, I couldn't find a single readline setting for combining two history lines. Nor can I find anything in the bash manpage.
So, how can I invoke this on purpose? Or, if I can't do that, how can I disable it completely? I would take either answer as a solution. Currently, I only see it when I don't want it.