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.

Reply via email to