Re: How to Set vi as editor

Bela Lubkin <[email protected]>
Newsgroups gmane.comp.web.lynx.devel
Message-ID <[email protected]>
[ completely irrelevant rambling here, move along... ]

Rudy Vener wrote:

> In my .profile I have:
> export EDIT=/usr/bin/vi
> export EDITOR=/usr/bin/vi
> export FCEDIT=/usr/bin/vi
> export VISUAL=/usr/bin/vi
>
> Note that some of the above environmental variables are specific to
> ksh, my default shell, and others may be legacy variables that I keep
> around simply from inertia. Still, it all works for me.

None of that is ksh-specific.  As usual for this sort of thing, there's
a lot of sillybuggers in the history...

Sorry.  Amateur shell historian here :)

$EDITOR is ancient, known forever to *ix programs which might want to
invoke an editor.

$VISUAL is slightly newer, came in around the development of `vi` at
Berkeley.  Most things that pay attention to $EDITOR check $VISUAL
first; typically, invoke $VISUAL if it exists, else $EDITOR, else some
compiled-in default.  Programs that think you might want to use a
different editor specifically for them will put $MYEDITOR in front of
the list -- like $FCEDIT.

$FCEDIT was invented by / for `ksh` (*), however, it is now widely used
amongst shells with ksh-like command line editing.  Furthermore my
current ksh(1) man page (for ksh93 '93u+ 2012-08-01') says:

    FCEDIT   Obsolete name for the default editor name for the hist
             command.  FCEDIT is not used when HISTEDIT is set.

... so it's actually deprecated by its parent.  (*): I think.  It might
have been picked up from some other contemporary which is now forgotten.

And, I don't know of any program in *ix-land that pays attention to a
$EDIT; though you may certainly have run into one.

I have 11 traditional-ish *ix shells on this system (13 if you count
`rc` and `sash`.  They're all over the map on this:

`bsd-csh` and `tcsh` have their own history methods, no need for
$FCEDIT.  (tcsh does use $EDITOR and $VISUAL for one silly unrelated
thing.)

bash, ksh, mksh, lksh, yash, zsh all have similar history with 'fc', all
pay attention to $FCEDIT.  Original (AT&T) ksh says it's a deprecated
name.  lksh seems to have working history despite no mention in its man
page.  bash & zsh run $EDITOR for 'fc' if $FCEDIT isn't set.  They also
both have a peculiar interpretation of $VISUAL.  They ignore its value,
just noting that it exists; then bash runs /usr/bin/editor while zsh
runs /bin/vi.  ??!?

The dash man page talks about history, binary doesn't have it.

The posh man page says 'FCEDIT: The editor used by the fc command (see
below)' -- and that's the last mention in the doc.  The binary doesn't
have it.

And, ash -- on my system is a symlink to busybox.  The busybox ash build
has no history and pays attention to none of those variables; the
overall busybox binary has references to $EDITOR and $VISUAL, but I
don't know for what.

Cheers,

>Bela<
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.