A vi-centric family tree of editors (2000)
web.mit.edu
web.mit.edu
The RAND editor wasn't free. We had a site license for it at an aerospace company, so it was on all the UNIX systems. It was not used widely outside aerospace and DoD. "vi" was an attempt to do roughly the same job without the special hardware.
[1] http://www.rand.org/pubs/notes/N2239-1.html [2] http://terminals-wiki.org/wiki/index.php/HP_2645A
Before an hour ago you were one of the only people in the world to know this little bit of history, and the fact would have probably died with you.
You can use Bravo as a programmer's editor, because the file format is plain ASCII followed by a control-Z, then formatting information. Alto compilers read the plain text part and stop at control-Z.
For example it uses G (for Get) to load files and P (for Put) to save them, instead of r (for read) and w (for write) like the ed family does.
(Whereas Sam for Plan 9 uses the mouse like Bravo does, but applies ed-like commands to the mouse selection.)
(/s kind of... I just love vim too much)
wat.
$ ls -lh `which emacs`
-r-xr-xr-x 1 root wheel 220M Oct 19 02:10 /usr/bin/emacs
$ ls -lh `which vim`
-rwxr-xr-x 1 root wheel 1.7M Oct 19 02:38 /usr/bin/vim
Disk space isn't as much of an issue anymore, but still, it's 100x the size. kamloops$ ldd $(which vi)
/usr/bin/vi:
-lcurses.7 => /usr/lib/libcurses.so.7
-lterminfo.1 => /usr/lib/libterminfo.so.1
-lc.12 => /usr/lib/libc.so.12
-lutil.7 => /usr/lib/libutil.so.7
kamloops$ ls -ld $(which vi)
-r-xr-xr-x 3 root wheel 506072 Nov 26 15:57 /usr/bin/vi
kamloops$ ldd /usr/pkg/bin/emacs-24.5
/usr/pkg/bin/emacs-24.5:
-lossaudio.1 => /usr/lib/libossaudio.so.1
-lc.12 => /usr/lib/libc.so.12
-lexecinfo.0 => /usr/lib/libexecinfo.so.0
-lelf.2 => /usr/lib/libelf.so.2
-lterminfo.1 => /usr/lib/libterminfo.so.1
-lpthread.1 => /usr/lib/libpthread.so.1
-lm.0 => /usr/lib/libm.so.0
-lz.1 => /usr/lib/libz.so.1
kamloops$ ls -ld /usr/pkg/bin/emacs-24.5
-rwxr-xr-t 1 root wheel 14682824 Jul 27 16:51 /usr/pkg/bin/emacs-24.5
#
# count of files installed per package...
#
kamloops$ wc -l /usr/pkgsrc/editors/nvi/PLIST
24 /usr/pkgsrc/editors/nvi/PLIST
kamloops$ wc -l /usr/pkgsrc/editors/emacs24/PLIST
3914 /usr/pkgsrc/editors/emacs24/PLIST /usr/X11R7/bin/xterm:
-lXft.3 => /usr/X11R7/lib/libXft.so.3
-lX11.7 => /usr/X11R7/lib/libX11.so.7
-lxcb.2 => /usr/X11R7/lib/libxcb.so.2
-lXau.7 => /usr/X11R7/lib/libXau.so.7
-lc.12 => /usr/lib/libc.so.12
-lXdmcp.7 => /usr/X11R7/lib/libXdmcp.so.7
-lfontconfig.2 => /usr/X11R7/lib/libfontconfig.so.2
-lexpat.2 => /usr/lib/libexpat.so.2
-lfreetype.18 => /usr/X11R7/lib/libfreetype.so.18
-lz.1 => /usr/lib/libz.so.1
-lbz2.1 => /usr/lib/libbz2.so.1
-lXrandr.3 => /usr/X11R7/lib/libXrandr.so.3
-lXrender.2 => /usr/X11R7/lib/libXrender.so.2
-lXext.7 => /usr/X11R7/lib/libXext.so.7
-lXaw7.10 => /usr/X11R7/lib/libXaw7.so.10
-lXmu.7 => /usr/X11R7/lib/libXmu.so.7
-lXt.7 => /usr/X11R7/lib/libXt.so.7
-lSM.7 => /usr/X11R7/lib/libSM.so.7
-lICE.7 => /usr/X11R7/lib/libICE.so.7
-lXpm.5 => /usr/X11R7/lib/libXpm.so.5
-lXinerama.2 => /usr/X11R7/lib/libXinerama.so.2
-lcurses.7 => /usr/lib/libcurses.so.7
-lterminfo.1 => /usr/lib/libterminfo.so.1
-lutil.7 => /usr/lib/libutil.so.7 $ ldd /opt/sublime_text/sublime_text | wc -l
15
$ ldd /home/tmk/.local/share/umake/ide/visual-studio-code/code | wc -l
84
And I'm not sure ldd even captures all the libraries these things load.The GNOME editor, a "small and lightweight text editor" according to the blurb and its reviews by some clearly incurious reviewers, requires that a per-user/per-login Desktop Bus broker be running and also (on my machine) that the following Desktop Bus servers be running: at-spi-bus-launcher (which runs another Desktop Bus broker), api-spi2-registryd, dconf-service, gvfsd, gvfsd-udisks2-volume-monitor, gvfsd-afc-volume-monitor, gvfsd-goa-volume-monitor, gvfsd-gphoto2-volume-monitor, and gvfsd-mtp-volume-monitor.
Normally, it behaves like WIN16 programs used to behave: invoking the editor a second time simply sends a D-BUS message to the already running first instance to tell it to open another document and then exits that second invocation. If you want to start up a true second separate instance, one way to do so is use dbus-run-session to start it up with a private Desktop Bus broker of its own. Of course, doing so starts up second instances of all of the aforementioned D-BUS servers as well.
This is not "small and lightweight".
It's very silly.
; ls -hl `{which emacs-25.1} -rwxr-xr-x 1 root root 17M Sep 18 04:32 /bin/emacs-25.1 ; ls -hl `{which vim} -rwxr-xr-x 1 root root 2.6M Nov 15 16:06 /bin/vim ;
17M is much more reasonable, but emacs has many supporting files as well. It's been installed on every system I've ever used that wasn't busybox-based, you can package it much smaller.
Emacs user: You should never turn off emacs.
Vim user: because it takes too long to load emacs.
The irony being the points behind both sides of this joke pretty much have no meaning with the current state of technology.
It is faster than Google Docs or MS Office, but the lag is noticeable.
So if I type
$ vim file
and start entering editing commands, often I do it so fast that some of the characters get cut off, like the leading colon of an ex command or what have you.There is no good reason for this. It will not happen with any reasonable command line utility.
I reported this to the Vim mailing list not long ago and was basically brushed off.
What's missing is the statement that this is how things work when one is relying upon terminals to respond to special control sequences with strings denoting their capabilities. In theory one could save up and re-process the input characters that arrive before the DECDSR response. In practice, people throw them away.
Did you try it on a non-xterm terminal type, as was suggested?
Use autoloads everywhere. Put all per-package configuration in lambdas executed on hooks, or eval-after-load. Lazy-load Helm by mapping M-x to helm-M-x etc. - small ad-hoc edits probably don't even need Helm.
I still use emacs --daemon / emacsclient (aliased to 'e'), but I keep my $EDITOR set to emacs. There's no good reason to have a long wait for startup.
http://web.archive.org/web/20060501032837/http://metashell.b...
So, vi gets dragged in as part of your vendor's commitment to "standards compliance". Also, for SUS purposes, vi means SysV vi, not vim. A far less domesticated creature.
In a base install of Solaris, Irix, HP-UX or Tru64, it'd be the only editor you get. Vim, emacs, nano, joe etc. would all be in a seperate "freeware tools" or somesuch sideloaded optional install set.
This, iirc, done because pico was part of the pine email client. And pine was covered by a iffy license.
I worked for an employer who banned "freeware" tools so you were stuck with ancient, broken software on Solaris and other systems.
Post 9-11, we had to secure all of the things, including moving away from rsh and telnet. SSH was problematic due to the freeware thing -- no worry... we were able to buy "IBM SSH" for $900 per processor value unit. (IBM SSH was an out of date OpenSSH where someone did a find and replace substituting Open with IBM)
This entire thread makes me giggle, usually posts about editors are filled with bad temper, but not this one.
Slanderous and outrageous lies!
Ed, man! !man ed
Computer Scientists love ed, not just because it comes first alphabetically, but because it's the standard. Everyone else loves ed because it's ED!
“Ed is the standard text editor.”
But more historical and factual: Ed is actually "mandatory on systems conforming to the Single Unix Specification)" as well.
exit
?
quit
?
q
?
bye
?
help
?
ohmygodgetmeouttaheeeeere
?
P.S. I'm not a native English speaker. "Fond" means "a vision of hell" right?Memory footprint of emacs is? Vs memory footprint of vi? I've had problem machines where no OS is installed and working in low memory cf: ~ https://slashdot.org/~goon/journal/49959 so steps like ^copying bootblack to disk and hexifying using vi(m) and hexman^ for example, painful in Ed, impossible in emacs, are made bearable in vi.
emacs was a thing developed and ported from other operating systems.
> vi was part of unix that came from at&t.
And that's why USL settled the BSD lawsuit. https://en.wikipedia.org/wiki/UNIX_System_Laboratories,_Inc...."Emacs is like a beautiful woman, but vi is like your hand; it will always be there."
Related: it's pronounced "VEE EYE" if you're a "JIFF" person. And anything but "six" otherwise.
I like "jiff" but prefer "vye", so whatever.
And as I understand it's called vi because of 'visual' mode of 'ed' line editor.
emacs never made it to that status, even as it was contemporary with vi.
With vi, you ssh to the remote machine, run vi and do your edits, then log out.
With Emacs, you ssh to your machine wherever it is already running Emacs, and use the remote edit features. You never close Emacs.
It still needs heavy work on usability and there are still some key features missing (like an actual family tree visualization), but progress is steady.
Feel free to leave some feedback
You can use http://asciiflow.com/ to create ascii diagrams in your browser.
Look again; the Emacs lineage is disconnected.
An editor with the speed of use of vim combined with a Lisp-like language (elisp with the warts removed) would be great.