tags:

views:

153

answers:

3

Is there a terminal program that shows the difference between input, standard output, error output, the prompt, and user-entered commands? It should also show when standard input is needed vs. running a command.

One way would be to highlight each differently. The cursor could change color depending on if it was waiting for a command, running a command, or waiting for standard input.

Another way would be to have 3 frames -- a large frame on the top for output (including prompt and commands running), a small frame near the bottom for standard input, and an one-line frame at the bottom for command line input. That would possibly even allow running another command to provide input while the previous command is still waiting for standard input.

From http://jamesjava.blogspot.com/2007/09/terminal-window-with-3-frames.html

+1  A: 

Hotwire could be a good candidate, but it's not doing that out of the box, AFAIK

elmarco
A: 

For now it appears that there is no such program.

James A. N. Stauffer
A: 

My program gush (Graphical User SHell) does part of this. It uses different colours for commands and program stdin/stdout/stderr. Note that the traditional separation of shell and terminal makes this impossible because the interface between them models an old serial terminal connection and therefore only has a single input and single output channel. I get around this problem by combining shell and terminal into one program.

It would be nice to also indicate when a program is waiting for input, but I don't think there's any way to detect this, unless you traced the system calls of the child program to detect when it tries to read stdin. For interactive programs, you can guess that if the last output did not end with newline it's probably prompting for input, but this would not work for non-interactive programs, eg. sed.

Colin Macleod