Ubuntu bug in reverse/forward search in bash?
For a long time now I have been addicted to using C-r (control-r) to do a reverse search in the terminal. If you haven’t done this, do it, it’s a huge time saver. Just hit C-r and start typing something unique from the command you are trying to recall.
I have a big history file (that’s what she said) on purpose, and being able to search back through it is nice. However one thing always bugged me, and I never got around to solving it, until today.
I would hit C-r and start typing, and then I would hit C-r a few more times to get back to the command I was actually looking for, except I ALWAYS got overzealous and went right past it. So I would hit C-c and start over. Then I thought, I bet you can go forward. Like any good Gnu/Linux user I typed man bash in my terminal and then /reverse.
Sure enough,
reverse-search-history (C-r)
Search backward starting at the current line and moving ‘up’ through the history as necessary. This is an incremental search.
forward-search-history (C-s)
Search forward starting at the current line and moving ‘down’ through the history as necessary. This is an incremental search.
That should work then. I pop out of my man reader, and hit C-r ssh
(reverse-i-search)`ssh': ssh nathanpowell.org
Whoops! I meant to only go back to the one BEFORE that entry :). So I hit C-s…nothing. So I went to the modern forward slash of information, google.
I found this bug. It appears that, for whatever reason, C-s gets trampled on by C-s (stop). If you apply the workaround suggested there, it does indeed start to work. So I pushd the following onto my .bashrc (bad bash joke, and ultimately untrue since I added it to the bottom of the file, not the top of the “stack” *sigh* *groan*)
stty stop undef
I don’t use stop in the shell so this will suffice for now, but it’s an interesting bug. I installed xterm, multi-gnome-terminal, and konsole, and only konsole was unaffected by the bug. So it’s an environment thing somewhere that konsole is not reading.
Does everyone else see this?