[comp.editors] EMACS better than Vi?

fowser@vax1.acs.udel.EDU (Scott Fowser) (05/06/88)

I am interested to know why so many people prefer EMACS to Vi.  I
decided to try it out, but from what I see in the tutorial, it seems
that most of the commands must be preceeded by a control or an escape.
If this is the case, using EMACS sounds quite inconvenient.

One feature about vi that I like is the ability to keep you fingers in
one place during the whole editing session, whether inserting or
editing.  Having to press escape to leave insert mode is inconvenient, but
I define "K" to mean escape from insert mode with

:map! K ^[

In the rare case that you need a K inserted, just put a ^V first.  With
this your hands can stay in about the same position for almost the
whole editing session.

I assume EMACS must have some more advanced features that give it an
advantage over vi in some situations, but the only ones I can see are
windows and that it is free.  I would be interested in hearing the
advantages of EMACS for just basic editing, since I am willing to
switch to EMACS if it really is better.

joss@ur-tut (Josh Sirota) (05/06/88)

In article <1197@udccvax1.acs.udel.EDU> fowser@vax1.acs.udel.EDU (Scott Fowser) writes:
>I am interested to know why so many people prefer EMACS to Vi.  I
>decided to try it out, but from what I see in the tutorial, it seems
>that most of the commands must be preceeded by a control or an escape.
>If this is the case, using EMACS sounds quite inconvenient.
>
>One feature about vi that I like is the ability to keep you fingers in
>one place during the whole editing session, whether inserting or
>editing.  Having to press escape to leave insert mode is inconvenient ...
>
> [ridiculous way of getting out of insert mode described ]
>
>With this your hands can stay in about the same position for almost the
>whole editing session.
>
>I assume EMACS must have some more advanced features that give it an
>advantage over vi in some situations, but the only ones I can see are
>windows and that it is free.  I would be interested in hearing the
>advantages of EMACS for just basic editing, since I am willing to
>switch to EMACS if it really is better.

Well, these things are ALWAYS matters of personal opinion.  But ...

As for being preceded by control or escape, well ...  Things aren't
PRECEDED by control, they're hit in addition to control.  That means
that I also never have to let my fingers leave the keyboard ...  the
left pinky merely sits perched over the control key and when I want
to do something it just hits it.  It's really second nature at this
point, much like using SHIFT.

In terms of the Meta-keys (escape-prefixed commands), yes, it's a two-key
process.  But it's no big deal.  At least I never have to go in and out
of insert mode and remember whether or not I'm in it.  Whenever I want to
insert I just type letters ... and if I want an editing command, I just
hit control-whatever or ESC-whatever.

In EMACS, all functions have names, and for some there are keys that you
can type.  Any command can be invoked by name, and there are many more
commands than there are keystrokes.

In general, I find I can be MUCH faster in emacs than I can in vi.

I'm sure that lots of people will agree with this and have many more reasons.
I think that EMACS does have a lot of powerful functions that vi doesn't,
but I won't try to list the ones I use just in case vi really does have them
and I just don't know about it ...

Josh
-- 
Josh Sirota
INTERNET: joss@tut.cc.rochester.edu          BITNET: joss_ss@uordbv.bitnet
          ur-tut!joss@cs.rochester.edu       UUCP: ...!rochester!ur-tut!joss

limes@sun.uucp (Greg Limes) (05/07/88)

In article <1197@udccvax1.acs.udel.EDU> fowser@vax1.acs.udel.EDU (Scott Fowser) writes:
>I am interested to know why so many people prefer EMACS to Vi.

[donning flame-pruif jammies]
Oh Ghod, here come the Holy Editor Wars. People, can we keep them on an
information level this time? The man *is* just asking for preferences.

>I decided to try it out, but from what I see in the tutorial, it seems
>that most of the commands must be preceeded by a control or an escape.
>If this is the case, using EMACS sounds quite inconvenient.

Yes, many commands in EMACS must be used in conjunction with control,
escape, meta (where available), or even meta-x. You get used to it after
a while. It helps if you have a keyboard layout that has these keys in
easy striking range.

>One feature about vi that I like is the ability to keep you fingers in
>one place during the whole editing session, whether inserting or
>editing.  Having to press escape to leave insert mode is inconvenient, but
>I define "K" to mean escape from insert mode with
>
>:map! K ^[
>
>In the rare case that you need a K inserted, just put a ^V first.  With
>this your hands can stay in about the same position for almost the
>whole editing session.
>
>I assume EMACS must have some more advanced features that give it an
>advantage over vi in some situations, but the only ones I can see are
>windows and that it is free.  I would be interested in hearing the
>advantages of EMACS for just basic editing, since I am willing to
>switch to EMACS if it really is better.

Some interesting EMACS features:

    Bind any command to any key, including another keymap; this is how
    commands like C-X 4 C-F (find-file-other-window) are created.

    Run an arbitrary UNIX command on an arbitrary region, placing
    output in its place or in another window

    Compile, toss the errors in a *compilation* window (while you edit
    something else), and step from error to error in the source code

    Record a series of keystrokes (as you edit), for later playback;
    these keyboard macros can be named, bound to keys, saved to files,
    and so on.

I use EMACS a lot, for the above features.  But then, I read news with
RN and use VI for quick editing sessions, so you might say that I have
not completely converted to EMACS.

If you really like the VI command structure better, but want to use
EMACS' additional features, there is a VI mode in Emacs. There are also
mail handling tools, news reading tools, and anything else that the
denizens of the network have deemed desirable to have.

(ps- Not all versions of EMACS are free ...)
-- 
   Greg Limes [limes@sun.com]			Illigitimi Non Carborundum

laba-4an@web7g.berkeley.edu (Andy McFadden) (05/07/88)

In my opinion, vi is the better of the two for everyday functions.  (Where
everyday = write C programs, short letters, etc).

If you want to write a novel, use emacs.  If all you want is a word processor,
there's a better choice...

If you like the interface, use Jove.  There's no reason to use a program
that huge unless you're going to use all of the power.  It works better
than Jove and vi in two respects: editing huge files, and editing binaries.

Since I'm not a "serious" writer, I greatly prefer vi.  It loads quickly,
and the quick word replace, line deletion, command repeption, etc ad nauseum
commands are perfect for someone who is willing to take the time to learn
them.  Having named commands helps the new user by giving him a crutch to
lean on.

Do I sound opinionated?  I find it hard to edit source code when I'm
permanently stuck in insert mode...

-- 
laba-4an@widow.berkeley.edu (Andy McFadden)

rustcat@csli.STANFORD.EDU (Vallury Prabhakar) (05/07/88)

My reason for using Emacs is simple.  I just do everything in it.  My .cshrc
file puts me into emacs, and I don't get out until I have to logout.  Mail,
news, shell windows, lisp, telnet and virtually ANY other program I want to
run from man pages to the obfuscated C codes.  The only thing I haven't been
able to do in Emacs is play Nethack.  

For me (as a user), Emacs *is* the operating system.  If there is some-
thing I don't like or can't do, I go and hack away at some elisp code until
it's fixed.  

Seeing all this, is there *any* reason why I or anyone should use `vi' or any
other editor except that they don't have Gnuemacs in the first place?

						-- Vallury Prabhakar
						-- rustcat@csli.stanford.edu

sommar@enea.se (Erland Sommarskog) (05/07/88)

Scott Fowser (fowser@vax1.acs.udel.EDU) writes:
>I am interested to know why so many people prefer EMACS to Vi.  I
>decided to try it out, but from what I see in the tutorial, it seems
>that most of the commands must be preceeded by a control or an escape.
>If this is the case, using EMACS sounds quite inconvenient.

Yippee! Another editor war, love it! :-) Seriously, dont be ashamed
if you prefer Vi in favour of any other editor. Since you ask for
it, I will try to explain why I use Emacs, when being on a Unix system.
To do this I have to give some of my background. I am raised on
VMS, which I still prefer. The editor I was taught - this was at the
university - was a very simple screen editor of local origin, called
TEVE. Taking in regard the ambition put into it, it was very a good editor. 
  Anyway, when I started to program bigger things, I grew out of TEVE 
and started to use EDT, the standard editor of VMS at the time. But,
yet the smallness of TEVE, there were several central features I missed
in EDT as other things I disliked. Also, I tended to search for the  
functions on the TEVE keys. Now, EDT offers you a possibility to 
redefine keys, and I took benefit from this. As far I could I emulated
the TEVE keys and I took away the worst insanities from EDT. As time
passed I got an EDTINI with over 60 lines. (And one key = one line.)
  When Unix came in my way, I knew about Emacs and decided that I 
should emulate my personal EDT in it. Of course Emacs is much more 
powerful than EDT, and Emacs also allowed me to get nearer to the 
TEVE concept.
  Since then I have also implemented my EDT profile in TPU, the new
VMS editor, programmable like Emacs, but quite different. For me
TPU provided better tools get what *I* wanted, but that's another 
story.

So I use Emacs to get the functions I want, and where I want them. 
Many of the advanced functions (abbreviations, windows, electric modes,
process handling) do I not use at all.

So if you feel used to Vi, and are not interested in the advanced features 
of Emacs, there is no reason for you to change. Particulary not, if you  
do all your work on Unix. And, if you want the hot stuff in Emacs, you 
can write your own profile with vi-like bindings, or get it from the
net somewhere.

Case closed? Not really. I'd like to put in an Emacs flame, before I
end. Emacs is powerful, etc, etc. BUT MUST IT BE SO GODDAMM SLOW?
It has really neat screen updating, but must the response time for
some single characters be 2-3 seconds? Oh, no this not always happen,
but as soon the system load increases, it does. It's like batch-
oriented editing. You type a bunch of keys, you wait a while and then 
you get the result. It's a real pain. 
-- 
Erland Sommarskog        "No protection on a motor-bike, then
ENEA Data, Stockholm      Sooner or later, that normal traffic's gonna get you"
sommar@enea.UUCP          -- Peter Hammill    

welty@steinmetz.ge.com (richard welty) (05/07/88)

In article <1197@udccvax1.acs.udel.EDU> fowser@vax1.acs.udel.EDU (Scott Fowser) writes:
>I am interested to know why so many people prefer EMACS to Vi.  I
>decided to try it out, but from what I see in the tutorial, it seems
>that most of the commands must be preceeded by a control or an escape.
>If this is the case, using EMACS sounds quite inconvenient.

I'ts a matter of what you're used to.  I  don't find my fingers moving
that far when I use emacs (as I am right now, entering this article.)
I find the modes of vi to be an irritation, although many vi users
like them.

> ... rather bizarre remapping of escape to K omitted ...

Now I'll admit that emacs suffers from a certain degree of obscurity,
but given the sort of thing that you described, I don't necessarily
think that vi is an improvement ...

>I assume EMACS must have some more advanced features that give it an
>advantage over vi in some situations, but the only ones I can see are
>windows and that it is free.  I would be interested in hearing the
>advantages of EMACS for just basic editing, since I am willing to
>switch to EMACS if it really is better.

Let's see ...
  1) availability.  emacs is present on many more computer systems
     than vi.  At work, I use VMS machines, UNIX machines, and Lisp
     machines, and I use essentially the same editor on all of them.
     Through my past three jobs, over the past 6 years, I've not had
     to learn a new editor.
  2) customizations -- if you're just after simple text editing, this
     may not be of interest to you.  An Emacs is generally written
     in lisp or a lisp-like language (there are exceptions to this,)
     and the user is permitted to write extensions to the editor and to
     remap the keys to different functions.  You can write a vi emulator
     in emacs if you want.
     Even if you don't want to customize, other users write packages for
     various emacs implementations and distribute them, and you can then
     add the extensions of others easily.
  3) modeless -- some of us hate modes.  Of course, others like them.  I
     suggest that a mode vs. modeless flame war could be really pointless,
     so let's not have one.

Now for some disadvantages:

  1) size -- some emacs implementations are quite large
  2) obscurity -- as I mentioned above, emacs is rather arcane in places.
     the learning curve is pretty nasty.  vi is no prize on this score,
     though.  vi does win a bit by having a degree of compatibility with
     the classical unix text editor.
-- 
Richard Welty               Phone H: 518-237-6307  W: 518-387-6346
    welty@ge-crd.ARPA       {rochester,philabs,uunet}!steinmetz!welty        

jpayne@cs.rochester.edu (Jonathan Payne) (05/08/88)

Several peopling keep making a point which is slightly "annoying" to me,
which is, if all you want to do is simple editing then don't worry about
the fact that you are using VI.  I don't use EMACS, I use JOVE, and so I
don't use any of the complicated features of emacs.  Instead I use the
basic features I have come to take for granted, like multiple buffers,
more than one window, interactive shells, automatic compilation and
error/grep parsing capabilities.  JOVE is smaller than VI, so you don't
need huge, slow programs to get a lot of the nice functionality that I
have come to take for granted.  The thought of using an editor which only
lets me have one buffer at a time is just horrifying ...  VI is good for
sending mail and news, but forget it if you are writing a paper, a
program, or anything else that isn't mail or news.

Jonathan Payne

P.S.  Yes, I'm biased, I know.

carllp@diku.dk (Carl-Lykke Pedersen) (05/08/88)

In article <1839@mhres.mh.nl> jv@mhres.mh.nl (Johan Vromans) writes:
>[Lets start a new editors war ...:-)]
                                  ^^^

>When dealing with basic editing: Emacs is (or can easily be configured) a
>simple
> [...]

>This makes Emacs (and its clones) suitable for novice users (e.g.
>secretaries, or people who only access the machine for the netnews of e-mail.

The problem for novice users is that they still have all the other 
commands. One false move and you are *dead*!
Have you ever tried typing 'C-x n' by accident? Or 'C-w', or 'C-x l' or ...
If you know wery little about emacs it can be very hard to get out of this.

And how do you get out? 'C-c' gives access to even more bizare commands,
'C-z' doesn't always work, 'C-\' doesn't work, 'ESC ESC' set you in the
most bizare part of emacs!

Well, get help!
The help system is such a gigantic system. You wouldn't know were to begin.
If you make an apropos, you either get 20 pages or none!

About this editor war: I think vi is worse in the help-aspect and with 
the key-strokes, but it sure is smaller!
Well, back to an *EDITOR*.

I think it would be a good thing to make a special novice-mode in emacs.
The only commands should be the ones you mentioned, a (better) tutorial,
a way to get into the real emacs and a usefull user-interface with the 
undefined keys.

>For experts - 

ITS GREAT!
I don't know how I lived without it, but then again, maybe I didn't!

>I prefer emacs, but that's a personal opinion.

CLp
.

ritzenth@bgsuvax.UUCP (Phil Ritzenthaler) (05/10/88)

In article <52330@sun.uucp>, limes@sun.uucp (Greg Limes) writes:
> 
> Some interesting EMACS features:
> 
>     Compile, toss the errors in a *compilation* window (while you edit
>     something else), and step from error to error in the source code


OK . . . this is one I really like . . . just how do you do this using fortran?

-- 
Phil Ritzenthaler    UUCP :.!cbosgd!osu-cis!bgsuvax!ritzenth 
                     ARPA : ritzenth@andy.bgsu.edu   

"Remember, OPRAH spelled backwards is HARPO (toot-toot)!" -- Anonymous

laba-4an@web4d.berkeley.edu (Andy McFadden) (05/11/88)

In article <9498@sol.ARPA> jpayne@cs.rochester.edu (Jonathan Payne) writes:
(For those who don't know, JOVE stands for "Jonathan's Own Version of Emacs")

>Several peopling keep making a point which is slightly "annoying" to me,
>which is, if all you want to do is simple editing then don't worry about
>the fact that you are using VI.  I don't use EMACS, I use JOVE, and so I
>don't use any of the complicated features of emacs.  Instead I use the

Everybody hear that?  You don't have to crank up a 1 megabyte lisp-based
program on a VAX to do your editing.  95% of everything you need is in
Jove (except, perhaps, M-x doctor).

>basic features I have come to take for granted, like multiple buffers,
>more than one window, interactive shells, automatic compilation and
>error/grep parsing capabilities.  JOVE is smaller than VI, so you don't
>need huge, slow programs to get a lot of the nice functionality that I
>have come to take for granted.  The thought of using an editor which only
>lets me have one buffer at a time is just horrifying ...  VI is good for

It can be annoying, but hardly horrifying.  What I would like to see is a
version of VI with multiple buffers and the ability of emacs to view/edit
object code without dying.

>sending mail and news, but forget it if you are writing a paper, a
>program, or anything else that isn't mail or news.

Here we agree to disagree, but that's not worth hashing over again.

>Jonathan Payne
>
>P.S.  Yes, I'm biased, I know.

That's ok.  It's your privilege to be biased.

-- 
laba-4an@widow.berkeley.edu (Andy McFadden)

limes@sun.uucp (Greg Limes) (05/11/88)

In article <2135@bgsuvax.UUCP> ritzenth@bgsuvax.UUCP (Phil Ritzenthaler) writes:
>In article <52330@sun.uucp>, limes@sun.uucp (Greg Limes) writes:
>>     Compile, toss the errors in a *compilation* window (while you edit
>>     something else), and step from error to error in the source code
>
>OK . . . this is one I really like . . . just how do you do this using fortran?

This is (should be) language independent; EMACS asks you for the
compilation command ("make -k" is default) and traps the output. The
command can be anything, so long as its output contains the right
indicators for filenames and line numbers in error messages. In fact,
since you can edit the output (it does not get scanned until needed),
stuff in a slightly improper format can be edited into the right format.

(on the other hand, you can also take the output of a compile and feed
it to the unix "error" command, and edit with VI; but "error" touches
all the files named, even if you dont want to correct the error.)
-- 
   Greg Limes [limes@sun.com]			Illigitimi Non Carborundum

louis@auvax.UUCP (Louis Schmittroth) (05/11/88)

In article <9498@sol.ARPA>, jpayne@cs.rochester.edu (Jonathan Payne) writes:
> ....  JOVE is smaller than VI, so you don't
> need huge, slow programs to get a lot of the nice functionality that I
> have come to take for granted.  

I am looking for PD source for an editor to run on MS-DOS machines and
others.  I don't want the whole functionality of Emacs and the .EXE
file should be small.  Some years ago, I had PerfectWriter on my Kaypro
which is about what I want now, but I want to be able to distribute 
it to students, along with other PD and homebrewed stuff.  In the
opinion of the gurus of this group, is JOVE what I am looking for?

If so, where can I get source?

-- 

Louis Schmittroth		           My employer has no opinions.
Computer Science
Athabasca University   ...{ubc-vision, ihnp4}!alberta!auvax!louis

dstalder@gmuvax2.gmu.edu (Darren Stalder) (05/18/88)

In article <3810@diku.dk>, carllp@diku (Carl-Lykke Pedersen) writes:
>The problem for novice users is that they still have all the other 
>commands. One false move and you are *dead*!
>Have you ever tried typing 'C-x n' by accident? Or 'C-w', or 'C-x l' or ...
>If you know wery little about emacs it can be very hard to get out of this.
>
>And how do you get out? 'C-c' gives access to even more bizare commands,
>'C-z' doesn't always work, 'C-\' doesn't work, 'ESC ESC' set you in the
>most bizare part of emacs!
>
>Well, get help!
>The help system is such a gigantic system. You wouldn't know were to begin.
>If you make an apropos, you either get 20 pages or none!
>
>I think it would be a good thing to make a special novice-mode in emacs.
>The only commands should be the ones you mentioned, a (better) tutorial,
>a way to get into the real emacs and a usefull user-interface with the 
>undefined keys.
>
But there is a novice mode in emacs.
All functions have a property called disabled.  If this property has a
value of T then you will be asked if you would like to execute this
command.  Emacs goes on to explain what the command does and then
gives you three options.  You can try it just once, you can enable it
(the enabling command is automatically put in you .emacs file), or you
can abort the command.

Commands like eval-expression (ESC-ESC) should be disabled.  If you
just started up emacs and typed it, then someone configured your
system wrong.  Look in your .emacs file for a line that says
(put 'eval-expression 'disabled nil)  This is what enables you to use
eval-expression with no prompting.  If you would like to disable some
of the commands in Emacs, here is what you do:
first if you don't know the function name type C-h c and the keystroke
sequence.  This will tell you what command runs with that key binding.

Then you must put into your .emacs file a line that looks like:
(put '-function-name- 'disabled t)  This will cause novice to be
loaded whenever -function-name- is called.  The two ' are important to
keep the e-lisp interpreter from thinking they are functions.
Example:  (if eval-expression is enabled by default on your system)
(put 'eval-expression 'disabled t)
I hope this helps.  
Hmm..just checking on something..If you type ESC-x disable-command and
the command name, Emacs will alter your .emacs file for you.  You can
do it either way.
>
>CLp
>.
--
                  Torin/Darren Stalder/Wolf
Blessed         Internet: dstalder@gmuvax2.gmu.edu
  Be!           Bitnet:   dstalder@gmuvax
                ATTnet:   1-703-352-8124
      Hail      uucp:     multiverse!uunet!pyrdc!gmu90x!dstalder
        Eris!   Snail:    PO Box 405/Fairfax, VA 22030/USA
DISCLAIMER: I have enough problems getting credit what I do do for
            work, much less this stuff.

pengo@tmpmbx.UUCP (Hans H. Huebner) (05/24/88)

In article <109@lakart.UUCP> dg@lakart.UUCP (David Goodenough) writes:
>:e#	>>> or the home key on my TVI tube <<<
While we're at keystroke-saving: Did you know that CTRL-^ has the same
effect as :e#<Return> ?

	-Hans

-- 
Hans H. Huebner, netmbx     | Telex:  186672 net d
Woerther Str. 36            | DOMAIN: pengo@netmbx.UUCP (sigh)
D-1000 Berlin 20, W.Germany | ..!{{pyramid,unido}!tub,altger}!netmbx!pengo
Phone: (+49 30) 332 40 15   | BITNET: huebner@db0tui6