10 ms·
A vi-centric family tree of editors (2000)
- wyc 10y agoInteresting how John McCarthy, the father of lisp, seems to be at the root of it all.
- kazinator 10y agoIronically, not quite "it all". Look again; the Emacs lineage is disconnected.
- toomanybeersies 10y agoWell MIT did have (one of?) the first PDP-1, which is why there are a lot MIT names on the family tree.
- kensai 10y agoAwww, I would love to see the rest of this conversation!
- softblush 10y agoThere you go https://groups.google.com/forum/#!search/$20emacs$20and$20other$20editors/alt.os.multics/dtd1-L1vdcY https://groups.google.com/forum/#!search/$20emacs$20and$20ot...
- baby 10y agoAnyone knows why emacs is almost never installed by default while vi(m) is? I often wish I had learned vim instead of emacs because of this :/
- sillysaurus3 10y agoIt's probably best to learn both. I usually switch back and forth. Just spend a week or so forcing yourself to use only vim and you'll never forget it.
- vowelless 10y agoBlasphemy! You should only use vim. (/s kind of... I just love vim too much)
- sillysaurus3 10y agoI used to feel similarly, but vim inside emacs is pretty sweet. The emacs package "evil" gives almost perfect vim emulation. Suddenly the entire emacs ecosystem is available to anyone who knows vim. And the ecosystem is massive.
- joatmon-snoo 10y agoAs a vim user who's yet to learn emacs... wat.
- weaksauce 10y agoTry spacemacs. It's really good. Most advanced vim stuff works as well as or better than in vim.
- throw_away 10y agoHistorically, probably because $ 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.
- paul 10y agoThat's how I ended up learning vi. In 1993, my 386 didn't have enough disk space for emacs, so I had to learn vi (which is lucky because I probably wouldn't have done it otherwise).
- hueving 10y agoIt's still very much this. The footprints of many entire server distros are less than 220MB.
- bch 10y agoTo say nothing of: 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
- shermanyo 10y ago
- grigjd3 10y agoI still hear the old joke sometimes: 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.
- lukeschlather 10y agoNot really. I'm an Emacs partisan, but my Emacs takes at least 3 seconds to load (often 4 or even a little more), while vim is instant. It is faster than Google Docs or MS Office, but the lag is noticeable.
- grigjd3 10y agoWell I certainly don't dig into the depths of what I can make emacs do (and hence load) but I find it opens seemingly instantly for me unless I am doing something like using the window mode on a VM that mimics a video card.
- aoeuhtns 10y agoRun as daemon https://www.emacswiki.org/emacs/EmacsAsDaemon https://www.emacswiki.org/emacs/EmacsAsDaemon
- techdragon 10y agoI should not need to run a background daemon for my text editor to load quickly.
- Tenobrus 10y agoTrue, but it's pretty reasonable for your nested OS to take a while.
- JdeBP 10y agoEnjoy, then, the need to run a whole bunch of background daemons in order for some "small and lightweight" text editors to run at all. (-: * https://news.ycombinator.com/item?id=13056252 https://news.ycombinator.com/item?id=13056252
- deleted 10y ago[deleted]
- linksnapzz 10y agoIIRC, it was the case that for commercial Unixen, the Single Unix Specification v.2 stated that amongst other things, the vi editor always had to be available. 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.
- craigsmansion 10y ago> it'd be the only editor you get. 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.
- macintux 10y agoI learned to program C in a crippled version of ed. Ed rocks!
- YeGoblynQueenne 10y agoAh, ed. I have fond memories of being stuck in an ed command line inside the Unix mode of Z/OS on a mainframe. exit ? quit ? q ? bye ? help ? ohmygodgetmeouttaheeeeere ? P.S. I'm not a native English speaker. "Fond" means "a vision of hell" right?
- AimHere 10y agoYes. Yes, that's exactly what it means.
- codezero 10y agoThis is how I learned vi. I was a pico (now called nano) user but needed to edit the hosts file when Solaris was released for x86.
- bootload 10y ago"why emacs is almost never installed by default while vi(m) is?" 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 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.
- DonaldFisk 10y agoOn Unix, the editors were ed and vi. EMACS originated on ITS and is part of GNU, so it should be installed by default on GNU/Linux but not necessarily on other Unices.
- notaplumber 10y agoOpenBSD includes both mg(1), the emacs-like editor and nvi the 4.4BSD new vi(1). http://man.openbsd.org/OpenBSD-current/man1/mg.1 http://man.openbsd.org/OpenBSD-current/man1/mg.1 http://man.openbsd.org/OpenBSD-current/man1/vi.1 http://man.openbsd.org/OpenBSD-current/man1/vi.1
- convolvatron 10y agovi was part of unix that came from at&t. i mean they still shipped ed, but emacs was a thing developed and ported from other operating systems.
- kps 10y ago> 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._v._Berkeley_Software_Design,_Inc.#University.27s_Counterclaim https://en.wikipedia.org/wiki/UNIX_System_Laboratories,_Inc....
- eltoozero 10y agoNot a comment on why, but when I first asked the elusive n00b question "vi or emacs?" to a thick-skin, the response was: "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.
- deleted 10y ago[deleted]
- zappo2938 10y agovim Adventures is the only reason I would use vim over emacs. [0] [0]: http://vim-adventures.com/ http://vim-adventures.com/
- aq3cn 10y agoWow, what a game. First I had impression of Mario, then mine sweeper and finally pacman. But it was none of them but a new category of a game. Can you recommend some more fun learning stuff related with me. You can also share it using /r/vim too.
- 0xcde4c3db 10y agoI think the historical reason for this is that vi (or rather, ex; the "vi" executable was added later) was part of BSD since the original BSD release. From there it got picked up by System V, and then since both BSD and System V had it, it was a shoo-in for the role of the standard POSIX visual editor.
- aerique 10y agoYou can learn both. I prefer Emacs as an environment but use Vim keybindings within because they're so ubiquitous and pretty good. https://www.emacswiki.org/emacs/Evil https://www.emacswiki.org/emacs/Evil
- davidgerard 10y agovi is part of what's expected on a Unix and made it into the various standards - if you're on even a weird Unix, it's going to have some sort of vi on it. emacs never made it to that status, even as it was contemporary with vi.
- snarfy 10y agoThey have different workflows. Emacs can edit remote files. 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.
- JackMorgan 10y agoAnyone interested in learning Vim might enjoy some practice exercises! https://github.com/steveshogren/10-minute-vim-exercises/blob/master/book_sample_delimited_edits.md https://github.com/steveshogren/10-minute-vim-exercises/blob...
- rcpt 10y agoInteresting to note that the author, Eric Fischer, still creates beautiful data visualizations https://www.twitter.com/enf https://www.twitter.com/enf
- enf 10y agoThank you!
- Animats 10y agoThey missed the RAND editor.[1] This was a full-screen editor of the late 1970s, years before "vi". It was originally designed for a specific HP terminal [2], one which had programmable function keys, and there was a little plastic overlay to place around the function keys indicating what they did. Later, there was a custom terminal with built-in keys for the editor functions. Expecting users to remember control sequences was considered unacceptable. 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 http://www.rand.org/pubs/notes/N2239-1.html [2] http://terminals-wiki.org/wiki/index.php/HP_2645A http://terminals-wiki.org/wiki/index.php/HP_2645A
- throwbsidbdk 10y agoCool! It makes me sad that history like this will be lost when the first generation of coders turns to dust. 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.
- pvg 10y agoMaybe they felt there was no known or documented relationship between that editor and vi. Then again, they missed Bravo (which ran on the Alto) and Bill Joy has talked about its influence specifically.
- chaostheory 10y agoI built a platform to keep track of the lineage of things and their variants: http://www.theymadethat.com/things/fi4/vi/show_evolution http://www.theymadethat.com/things/fi4/vi/show_evolution 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
- Vera527 10y agoI don't actually understand this. Can someone explain???
- arundelo 10y ago"vi"[1] is a very influential text editor created in the 1970s (and still used today). This "family tree" show a bunch of other old text editors that directly or indirectly influenced or inspired vi. (For example, George Coulouris's "em" was based on Ken Thompson's "ed". Bill Joy and Chuck Haley's first version of "ex" -- an ancestor of vi -- was based on "em".) [1]: https://en.wikipedia.org/wiki/Vi https://en.wikipedia.org/wiki/Vi
- enf 10y agoThis was my post to alt.folklore.computers. Nice to see it reappear after all these years!
- astrodust 10y agoDid Elvis miss the cut? https://en.wikipedia.org/wiki/Elvis_(text_editor) https://en.wikipedia.org/wiki/Elvis_(text_editor)
- enf 10y agoI didn't include it, because the original question was where vi and its predecessors came from, not what offspring did it have itself.
- beerbajay 10y agoIs the source history of these editors saved in the UNIX history GitHub project[1]? Is there significant code overlap or is your diagram more along the lines of inspired-by relationships? [1] https://github.com/dspinellis/unix-history-repo https://github.com/dspinellis/unix-history-repo
- enf 10y agoThere is not a lot of code overlap in most cases, even between ed and ex. The relationships are generally more about command sets than direct forking of code.
- littleq0903 10y agoThis might be kind of off-topic, but I am interested in how he create this tree diagram, is there any tool could do that? or just handmade?
- tbrock 10y agoThere is monodraw for Mac OS X: https://monodraw.helftone.com https://monodraw.helftone.com
- bch 10y agoEmacs' Artist Mode[0][1] might help. [0] https://www.emacswiki.org/emacs/ArtistMode https://www.emacswiki.org/emacs/ArtistMode [1] https://www.youtube.com/watch?v=cIuX87Xo8Fc https://www.youtube.com/watch?v=cIuX87Xo8Fc
- amenghra 10y agoA fun tool once you have handmade diagrams is https://github.com/ivanceras/svgbobrus https://github.com/ivanceras/svgbobrus which converts them to svg. You can use http://asciiflow.com/ http://asciiflow.com/ to create ascii diagrams in your browser.
- enf 10y agoI made it by hand in vi.
- gbrown_ 10y agoA recent addition is vis[0], which incorporates sam's structural regular expressions. [0]https://github.com/martanne/vis https://github.com/martanne/vis
- ue_ 10y agoIt's quite strange that the lacking feature of vim was a proper and good extension language where most of the editor itself you could modify, but vis comes along and instead of a powerful language like Lisp has Lua almost tacked on. An editor with the speed of use of vim combined with a Lisp-like language (elisp with the warts removed) would be great.
- amelius 10y agoSince some of the authors are from academia, it would be nice to have references to the scientific papers addressing the implementation of these editors.