Schol-R-LEA wrote:IIRC, the fans had started on VIgor the same day the first comic of that story arc was posted, and the first release came before the arc ended. Because that's how the UF fanbase rolled back then.
I remember now, I heard of Vigor back then from someone who used or worked on it. At the time, memories of the
screaming horror of bloated commercial monstrosities
trying to be helpful were just too fresh in my mind, so my response, joke or not, was to load the bombers with Napalm. Kill it with fire!
klange wrote:I think anyone who is really interested in this stuff should take a crack at writing their own editor. I also think it's a very good thing to include in your OS.
I think so too. I pretty-much have to as part of my premise is putting a good text editor into the GUI and the console and every other paradigm where text editing might be imaginable.
Schol-R-LEA wrote:I would recommend (again) Craig Finseth's
The Craft of Text Editing as a starting point for anyone looking to write an editor, since even though it is almost 30 years old now, it covers most of the techniques and design considerations which come up in writing an editor. While the printed book is outrageously expensive today, there is a
free version available on Finseth's own web site.
Thanks! I've started reading it. I agree with its division of components; I'd pretty-much come to the same conclusion regarding the internal sub-editor. (This helps my confidence.)
Thanks too for the CUA link and other clarification. I was evidently quite wrong about
WordStar, which is an interesting set of bindings.
I have been told some of the Emacs keybindings predate Emacs, but never found out which. I'm fairly comfortable with its basic cursor movement keys actually, although I did use a heavily customised viper-mode when I used Emacs. (viper-mode replaced vip-mode which obsoleted vi-mode if i remember right, and now there's evil-mode. Change goes on.)
Schol-R-LEA wrote:Similarly, the vi command set came from
ed, though it originated with
QED, a line editor written in the 1960s which Brian Kernighan happened to be familiar with, though he decided to simplify it a great deal - most people would say too much.
Interesting you should write that last bit. vi's command set is actually that of ex, which is more complex than ed. Meanwhile, the originators of Unix were going the other way: sam's command set is simpler than ed's, but more regular and arguably more powerful.
Schol-R-LEA wrote:The WordStar bindings are different from either of them, and as the name implies, came from the 1974 word processor
WordStar. They weren't all that good, TBH, being pretty counter-intuitive, but the basic commands were easy enough to learn and few people using WS actually needed the less frequently used ones anyway. Many CP/M and early MS-DOS programs used these, and - as a personal note - they were the first screen-oriented editing command system I learned (I'd only used Pr1me BASIC and Applesoft BASIC before then, both of which were line-oriented and had almost no real editing capability to speak of - you just manually replaced the line you were changing, typing the whole thing out over again with the changes).
Mm. I'd say VI's bindings are just as counter-intuitive as WordStar's. Emacs's slightly less so. I don't think VI's keybindings were given very much thought. The HJKL set is merely where the arrows were printed on the budget terminal Bill Joy used (ADM-3A).
Now I'm wondering why I put all that effort into configuring viper-mode all those years ago. Did I really find VI keys better, or was I just taken in by the home row hype? I don't remember, but I do remember I was very happy with the result. I very much like VI's bindings for scrolling; all 6 of them. I don't think Emacs has keys for single-line scrolling, and I very dimly remember not liking its half-page bindings. Oh, VI's bindings for moving the cursor to the first and last lines of the window are great too. And Vim's move-to-paragraph keys, which I think Viper had. So basically, VI bindings have a lot to offer, with the much-praised HJKL being the least part, IMO.
Regarding BASIC, I thought Ataris were a bit good because you could move the cursor around and wherever you pressed Return; the line the cursor was on would be entered. You could list a line and change rather than retype it. However, it was slow and flawed. It didn't work with multiple lines unless you worked from the bottom up: when you pressed Return, the line below would be overwritten with "READY". The cursor moving and related editing features were built into the operating system as the editor device.
As flawed as Atari's implementation was, I was very surprised, even a little disturbed when I learned Unix had no such feature at all. Acme and Emacs might have the closest similar features, with shell windows of Plan 9's window system being about half-way there.
Rebinding Emacs keys... yeah, the problem with that has always been clear, which is why I'd rather get Spacemacs or whatever than do it myself. Or modify my keyboard so it has ctrl shift alt down the left edge in place of caps shift ctrl; this helps a lot.
Schol-R-LEA wrote:Of course, a number of Emacs users also do most of their editing with Org mode and its derivatives, even for coding (as its hypertext functionality can be used for a quasi-Literate Programming style mix of code and code documentation, something which intrepid Elisp coders have made a suite of tools for).
Interesting! Hypertext was essentially what made Acme so useful to me. I don't think org mode had been written when I was using Emacs, or I didn't imagine the value of it. I tried to use outline mode, but found the keybindings too clumsy, and mouse was barely an option back then. Also, outline mode is strictly hierarchal.
Schol-R-LEA wrote:And if you really wanted to you could write your own modes, bindings, and toolsets to make it do almost anything (e.g., there are modes for web browsing, image and sound editing, reading and sending email, playing music, interacting with VCSes, remote wiki editing, and playing any number of games, as well as 'window managers' which extend Gnu Emacs to behave more graphically), so that rabbit hole can go as far as you have the persistence to take it.
As people have been saying for... oh, maybe 2 decades now, maybe more: Emacs is an operating system.
klange wrote:I think the CUA presents a lot of problems for terminal-based editors in a modern context, since many of its most well known recommendations are already taken by terminal emulators themselves, eg. Shift+Insert for paste or F10 to activate menus.
Indeed. Contrast Apple who added another key to the keyboard,
as did literally everyone else but IBM, and had no conflict with terminals. Apple were even able to support some traditional (Emacs-like) keys in their GUI apps, only dropping it this decade. IBM had the excuse of retaining compatibility, and good keyboards weren't cheap in those days so people would have hated them if they'd demanded an extra key. I imagine it's possible they aimed to retain compatibility only with their own terminal software. Some IBM terminal keyboards I've seen have only a single small control key in a separate block, suggesting it was very rarely used and thus 'free' for the CUA. The computing world was very segmented, so although the basic Emacs keybindings might have been as much as 10 years old at the time, it's possible nobody on the CUA team had ever used them.
A programmer I knew who must have started his career in the 70s and quit in the 00s once told me, "I used Unix once. It had this text editor, what was it... Vi?" He really didn't sound happy with it, almost wrinkling his nose as if it smelled bad.
At the time, I was too astonished to ask questions because I hero-worshipped Unix & thought it was much bigger than it actually was.
Solar wrote:eekee wrote:Vim has recently broken these by trying to keep the cursor away from the top or bottom. In my world, this is the final nail in Vim's coffin...
:set scrolloff=0
Seriously. Vim is about as configurable as an editor gets. If something doesn't quite work the way you like,
change the settings.
I personally like scrolloff=3, which is enough to give me the context of the code line I am looking at, but not so much as to be annoying. I've been using that setting for ages (and copying my favorite settings from my homepage to the ~/.vimrc of any new machine is among the first things I do), so I didn't realize the default had changed "recently" (?).
My problem is I got into the habit of discarding config when changing machines or operating systems. I'm not sure why, I think depression might have had a part to play. Then there was the 10-year period when I used Plan 9, which didn't require much configuration to be fairly comfortable in the first place, so I thought I could do without. Worse, on the odd instances when I have tried to configure Vim or Elvis or anything else during this long period, it's variously been very difficult to find clear instructions (esp. Elvis) and/or has just failed to work, usually without an error message.
The options I'm looking at now are A: setting up some flavour of Emacs and keeping the configuration this time, or B: finishing my own editor. Setting up Emacs would be a project in itself; perhaps a larger project than setting up Vim, but I'd much rather have Lisp than an ad-hoc language. For instance, if I want to load my Forth files in fundamental mode in Emacs, I can just remove the filename association from the a-list or prepend an overriding entry. I already know these things and they're part of the e-lisp language. In Vim's configuration language, is it even possible to remove associations? Is there a frill-free mode named in the configuration language so I can set to override associations? If I set it, would it actually override or is Vim's language "first setting wins"? So many questions! Just give me a real language. And then there are all the other configuration changes I'd like to make. (At one point I considered writing a sort of Emacs in Python, but Lisp and Forth are so much better for DSLs.)
As for my editor, the internal sub-editor is essentially done, although it lacks undo. The command language is 3/4 done, but I've changed my mind about namespacing and want to revise all the names. To start using it, I need to finish file i/o and write a visual interactive (ahem) front end. Then to be really comfortable, I'd need to add undo. I basically know how to do these things, it's just a matter of concentrating and keeping my neuroses under control.
OpenWatcom's VI is good enough to help with concentrating, and I have Sam for the mass changes. Sam's command language is more powerful than VI's and sometimes easier to type. To be honest, that's all overkill. Forth's syntax is so simple and this editor core so small that Notepad was not a bad choice. If I remember right, I abandoned Notepad only because I wanted infinite undo.
Schol-R-LEA wrote:I forgot to mention that the bindings for
nano (well,
pico to be technical) are nice and simple, and the core set are all continuously displayed on screen in a help bar at the bottom
I do like it when the keys are displayed at the bottom. I always found it a huge time-saver in DOS programs.
Schol-R-LEA wrote:But like with Notepad, any serious editing job is going to bog down very quickly using nano.
Perhaps more so; does nano have a selection feature? Shift-click and the CUA selection controls are a big help. Emacs's alt-space might be better still but it's been years since I used it.
Solar wrote:linguofreak wrote:em was a visual line editing extension to ed (editing one line at a time interactively, instead of taking commands and then requiring a separate print command to see their effect)...
Hence its name, em -- "
editor for
mortals". To be fair, QED / ed had to work on teletypes, where "interactive" had a bit different meaning.
Indeed. I can certainly understand the name. I spent about 2 weeks setting up a system with just ed and sam -d to try to get used to it. It wasn't impossible, but there was this constant feeling of medium-level stress whenever I was editing text. Not fun for long. It makes me wonder if I'm in the wrong hobby because it's basically working blind, and programming always involves some degree of working blind. Sam and the version of Ed I was using (Plan 9's) make it easier than normal to see the changes you've just made, but it was still stressful.
Solar wrote:linguofreak wrote:It turned out that most users were spending almost all their time in visual mode, so in 2 BSD, ex was hard-linked as "vi", and if invoked as vi, it would start up in visual mode.
You've got to love how much meaning is in those two-to-four-letter executable names (like grep, which is derived from the QED-command g/re/p which it effectively emulates: "global, <regular expression>, print").
Yes.
There was a time when ls bothered me because it couldn't list everything. Plan 9 went a long way toward solving this, but not all the way... but
as i realized when I tried to write something brief about it, that's another big topic on its own!