François Pinard wrote:
[Aaron Griffin]
Bram has spoken - vim is an editor. It is not a shell.
Quite granted.
I see *nothing* that another terminal cannot do.
I'm happy with what Vim is. However, here, you could use some more
imagination :-). There are a few things another terminal cannot
easily do, while these things are more akin to Vim editing in
read-only mode than they are to shell operations.
For example, a shell buffer could do syntax coloring of shell output,
when within a given highly interactive subsystem like Lisp or R, say.
As long as this precise subsystem is active, the "file type" could be
set to drive the highlighting. Another thing is the ability to use
Vim search facilities through some voluminous output. Yet another is
the ability to scroll and wander within previous output, or even do
clever selections like Vim block, or otherwise, which most terminals
just do not offer.
However, Vim does not easily allow editing of growing files (at least
so far that I know), and a shell buffer essentially holds growing
output. Moreover, Vim does not really proxy interactive communication
with other programs, while this seems essential to implement shell
buffers.
Shell buffers also come, sooner or later, with their own complex
requirements, like file name completion (and then, the necessary
directory tracking that goes with it), following the stty settings
(like echo), consequent output cleanup and filtering, more
localisation concerns, etc. It is more a can of worm than many might
think.
I prefer Vim to stay clean and efficient like it is. Yet, I regret
not having its syntax highlighting abilities over my shell output...
- To use Vim coloring on shell output (but not in realtime): redirect
stdout to a logfile and view that (with a proper filetype & syntax script).
- To watch the output in real-time (but not with Vim coloring) and save
it to a log: use tee (Unix-like systems only)
overwrite: program param1 param2 | tee program.log
append: program param1 param2 | tee -a program.log
For instance:
make | tee make.log
make install | tee -a make.log
Most "old Unix hands" know this of course, but I bet there are newbies
going over from Windows to Linux (and/or cygwin) every day...
Best regards,
Tony.