On Sun, Jul 26, 2009 at 2:07 PM, Matt Wozniski<[email protected]> wrote: > On Sun, Jul 26, 2009 at 11:34 AM, Efraim Yawitz<[email protected]> > wrote: >> >> >> On Sun, Jul 26, 2009 at 6:20 PM, Gregory Margo <[email protected]> wrote: >>> >>> No. Shells in general (bash,dash,ksh,zsh,tcsh,csh) allow complete >>> removal of the environment variable. Bourne-type shells use "unset" >>> and C-type shells use "unsetenv" commands. >>> >> OK, but why is that necessary? > > For programs that have different behavior depending on whether or not > a given environment variable exists - there are a great many programs > that fall into this category. For instance... > > $ export PAGER='echo hello' > $ man man > hello > $ PAGER= > $ man man > <... implicitly paged as though by 'cat' ...> > $ unset PAGER > $ man man > <... implicitly paged through 'more' ...> > > So, you get different behavior for a non-empty environment variable, > an empty environment variable, and no environment variable.
Oh, and - at least on Unix - one way around this problem would be to use :!env -u PAGER man ls from inside vim, instead of :!man ls But of course, this is no real replacement for having :unlet $ENV_VAR do the right thing... ~Matt --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_use" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---
