My problem is that the Bash shell stops showing the characters I type into it. It does read the commands though.
I've come across this problem quite a few times and I don't understand what causes it. I know how to solve it, but I really don't like it when I'm "voodooing" my way of out of problems.
I'll describe the two ways I've come across this problem:
I'm running a certain process, http://pythonpaste.org/script/ and sometimes when I stop that or it breaks control is given back to the shell. When I then go and type commands into the shell, the characters I type don't show up. When I press enter the commands are submitted. So for example:
- I type "ls"
- I only see an empty prompt and nothing more
- I press enter and I'm given a listing of the files, in other words: the command is executed
- when I give the "reset" command the shell starts working normally again
The second way this happens is when I give a command like this:
$ grep foo * -l | xargs vim
I use grep to find files that have a certain pattern and then I want to open all the files that result from the grep. This works like a charm (although not as fast as I'd hoped). But when I exit Vim my shell stops showing the characters I type into it. A reset command resolves the problem.
My guess is that both problems have an underlying reason, but I'm kind of stumped on how or what that reason is.
Searching for this problem is itself problematic because the description is kind of vague and has no hard search-terms for it.
Edit
Giving the
stty --all
command as per John S. Gruber's request gave the following output (whitespace edited for readability)
speed 0 baud;
rows 53;
columns 186;
line = 0;
intr = <undef>;
quit = <undef>;
erase = <undef>;
kill = <undef>;
eof = <undef>;
eol = <undef>;
eol2 = <undef>;
swtch = <undef>;
start = <undef>;
stop = <undef>;
susp = <undef>;
rprnt = <undef>;
werase = <undef>;
lnext = <undef>;
flush = <undef>;
min = 0;
time = 0;
-parenb
-parodd cs8
-hupcl
-cstopb cread
-clocal
-crtscts
-ignbrk
-brkint
-ignpar
-parmrk
-inpck
-istrip
-inlcr
-igncr
-icrnl
-ixon
-ixoff
-iuclc
-ixany
-imaxbel
-iutf8
-opost
-olcuc
-ocrnl
-onlcr
-onocr
-onlret
-ofill
-ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig
-icanon
-iexten
-echo
-echoe
-echok
-echonl
-noflsh
-xcase
-tostop
-echoprt
-echoctl
-echoke
stty --all
and put the results in your question. Echo is a tty characteristic that is being turned off. Vim will do this while it is running, and it will put the terminal in raw mode, too. When it quits it should reset the terminal settings itself. When vim is running you don't want to echo thei
command which puts the editor into insert mode, for example. These settings tell the tty device how it should be processing what you type. While vim is running it takes care of echoing what should be echoed, etc.stty --all
to my question. Thanks in advance!