5 ms·
Emacs already does something like this, albeit to a much lesser extent: Some useful commands, such as set-goal-column (C-x C-n) or narrow-to-region (C-x n n) ar
by silentbicycle 18y ago
Emacs already does something like this, albeit to a much lesser extent: Some useful commands, such as set-goal-column (C-x C-n) or narrow-to-region (C-x n n) are disabled by default and will ask if you actually intended to use them - otherwise, bumping C-x C-n would be really confusing, for example. (It makes the cursor jump to a specific column whenever you move up/down a line.)
Of course, its interface could be better structured for gradual learning - while the documentation is certainly there (info pages, C-h t), there's a lot to learn upfront. Advanced features for difficult stuff shouldn't get in the way of basic tasks.
- defunkt 18y agoPart of the idea behind this post is that the keys (such as C-x C-n) aren't even bound - that way describe-bindings and friends are kept relatively spartan until the features (power-ups?) are unlocked. As it is, the help functions are pretty intimidating with the amount of information available to you. The Emacs tutorial starts this way, too. "Here's how you move a letter. Here's how you move a word. Here's how you move a page." It would be great (but probably too much to ask) for the same instructional style to continue through more advanced usage.
- mechanical_fish 18y agoThe problem is: when do you unlock C-x C-n? I am sad to admit that I still never remember that set-goal-column exists. So the right time to unlock it for me seems to be "about ten years into the emacs experience". OTOH, I've been using the rectangle commands (e.g. rectangle-open, rectangle-delete) since nearly the beginning. I like them and often find them handy. So for me the right time to unlock rectangles is "on the third week". And so it goes. Everybody's use case is different. Everybody explores a different subset first. Everyone's idea of the most important emacs feature is different. This is quite unlike a game. One major reason that games use the gradual-unlocking strategy is to keep you interested in following their linear plot. But, after the first few days, emacs doesn't have a linear plot, and we probably don't really want it to.
- defunkt 18y agoBut don't you agree there are probably basic, useful editing commands you missed along the way?
- mechanical_fish 18y agoSure. I just don't think that disabling all the other commands is necessarily going to help me find them. And I think that, while a walkthrough is a good idea, a video-game-style walkthrough is more trouble to create than it's worth. I could be wrong, and anyone is welcome to build such a thing. But I'd recommend more screencasts first -- I sense that there's more bang for the buck there.
- defunkt 18y agoYeah, I think you're right about the screencasts. (Still, the idea of a little 'ding' when you level up and unlock new commands excites the former Diablo-addict in me.)
- silentbicycle 18y agoAlso, what is basic will vary from user to user. Grouping functionality by task in a way that would be simple to navigate would probably be a good start, though elisp doesn't really have a same namespacing system anyway. (Does XEmacs? I know it has a packaging system, but I use GNU Emacs.) Something like adding an alist or hash-table of symbols for task descriptions -> relevant functions, such as 'file, 'rectangle, 'email, 'basic wouldn't be too hard to retrofit onto the existing system. A bunch of redundancy wouldn't hurt, and a navigation system as in iswitchb or anything would probably work. I'm busy with projects ATM, but I'd be interested in doing this...and aside from tagging existing stuff, it would be fairly quick. It could potentially be a newbie-friendlier version of apropos, because part of the problem with apropos is that you have to know general terminology in the first place. If this already exists and I don't know about it...that might just prove my point.
- mechanical_fish 18y ago
- almost 18y agoThat wouldn't by such a great idea in my opinion, it's not such an advanced thing in Emacs to be rebinding keys, it's almost essential for normal use in fact. When you're binding your own keys you need to know what that key already does so you can decide if it's something you use now or might use in the future. If it is then you probably don't want to use that key. It would be a pretty bad situation to get to a "you've unlocked new feature X"! But then find that the key for new feature X is the same one you're fingers know to do something else. Not that you couldn't just rebind it to something else but that would just lead to a huge amount of differences from the norm with no good reason (on top of the the already huge amount of differences from the norm for a good reason that most peoples Emacs already carry around).
- mechanical_fish 18y agoI just don't think there's a market for yet another Simplified Emacs. Isn't that what jove and joe and nano are for? Isn't that what every other editor on the market is for? The problem with learning emacs is that there are two phases. There's the stuff that you have to know or you can't do much of anything. Some of that is inevitably complicated, because it's slightly different from anything that a Mac or Windows user has seen before -- keyboard navigation, multiple modifier keys that can be used consecutively, keymaps and keybindings, major and minor modes, kill-and-yank instead of cut-and-paste, buffers, Emacs "windows" versus OS "windows", panes, prefix arguments). The idea of having a gradual reveal of these features is a good one. But isn't that called the "emacs tutorial" and hasn't it been built into the editor for twenty years? ("C-h t"). Other people have argued that some of these features should be altered or compromised or disabled for new users -- it has been tried many times. I'm of the camp that hates this: You shouldn't screw up the carefully-designed semantics of emacs by installing Mac-style copy-and-paste. If you want to just visit the emacs world but aren't yet prepared to live there you should just go use TextMate or something in the meantime. It's not as if there are no alternatives. The other, much larger portion of the learning curve is all the nonessential but incredibly powerful stuff that emacs can do: macros, customization, Dired-mode, shell-mode, hippie-expand, dabbrev, yasnippet, magit, Lisp interactive mode, gnus, org-mode, ido, Icicles, Zippy the Pinhead, Towers of Hanoi, blah blah blah. But it would take freaking forever to design a video-game-style walkthrough of all of that stuff, and the result would take forever to play through, and it would bore a lot of people because everyone's favorite 10% of the emacs universe is different. I do think the emacs world would benefit from a lot more screencasts, but I'm not sure that going beyond that to game design is worth the trouble.
- silentbicycle 18y agoUnless it's radically different. There's a lot of cruft in Emacs (I mean, it has enough mass to pull things into orbit...), but little of that has anything to do with what makes Emacs fundamentally powerful: it's an emulated Lisp machine. I know I have a fierce minimalist streak, but I wonder what could be done with a new Emacs with a clean break - all of the mini-Emacsen I've seen (e.g. mg) have preserved the default keybindings (C-x C-f, C-n, etc.) but dropped the core extensibility. Perhaps the reverse would be more fruitful? We haven't reached a dead end for editor (or interface!) innovation yet - look at ACME (http://doc.cat-v.org/plan_9/4th_edition/papers/acme/ http://doc.cat-v.org/plan_9/4th_edition/papers/acme/), for example. I don't like it (it's too mouse-centric for my taste), but it has quite a few interesting ideas, as does plan9. Probably, Emacs will absorb most interesting features from other editors instead ("worse is better" and all that), but good may come of questioning its assumptions. I'm just trying to start some interesting discussion. Slow news because of the holidays, and all.