On 22/04/11 07:36, Adam Monsen wrote:
You've this mistake before, right?

   cat /tmp/foo.txt | vim

when you meant to do

   cat /tmp/foo.txt | vim -

Somewhere early in my Vim learning I figured out the latter, so I
usually don't repeat the mistake.

But why *is* that even a mistake? What is the purpose/origin/history
of the first example, the vim "sans-dash" behavior?

Seems like the "vim -" behavior (read text from stdin) would make
for a much more useful default.


Vim needs to read your keyboard commands from somewhere; so normally it reads them from stdin, or if in GUI mode and there is no stdin, then from the GUI (X11, Windows, etc.) keyboard dedvice. It's not like so many batch command-line utilities which take no interactive input but only command-line arguments, and thus can default to stdin if no specific input file is given.

When Vim is not started with an editfile specified, it opens an empty [NoName] file: it doesn't take your keyboard input as raw file data to be edited later (maybe after you signal an end-of-file by hitting Ctrl-Z on Windows or Ctrl-D on Unix).

In the special case when you specify stdin as input, Vim reads it all as an input file, marks it as modified except if readonly, and then starts reading your keypresses from somewhere, maybe stderr though it is somewhat strange to use the "error output device" for input.


Best regards,
Tony.
--
The fortune program is supported, in part, by user contributions and by
a major grant from the National Endowment for the Inanities.

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to