3 ms·
Part 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 unti
by defunkt 18y ago
Part 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 agoSo, this isn't info-emacs-manual, but rather a system that lets you actually invoke a command by first choosing a category of commands, then choosing from a list of possible commands? Interesting. Note that the emacs module system accomplishes some of the task of organizing commands into subsets. I make liberal use of describe-mode (C-h m) when I want to figure out what my options are in a given mode. Other modes actually populate the menu tree, almost like a real Mac application! (I spent almost a week paging through the docs, trying to memorize the magit commands, before I noticed that the module had helpfully installed a "Magit" menu in the menu bar. I never look up there!)
- silentbicycle 18y agoI'm thinking of something along these lines: After pressing the relevant key (C-h something, also perhaps F1 or what have you, but definitely something listed on the startup screen), a prompt comes up, with a list of known keywords (basic, movement, file, buffer, latex, python, etc.). Typing filters the list for things that contain the substring (as in ido, iswitchb, anything, etc.); while this takes a bit of getting used to, there's immediate visual feedback, so it's reasonably self-explanatory. When you hit enter, the first suggested keyword is selected, it brings up a list of everything tagged with that category. (The dialog would look like the result from apropos.) Hopefully, most of the keyword mapping could be automatically generated, but it will inevitably need some hand-tuning. I know to use describe-mode, apropos, apropos-variable, info, etc. when I am looking for / have forgotten about something, but that, in itself, means I'm over the hump in learning to use Emacs. New users aren't going to know what "M-x describe-mode" refers to (or even what "M-x" is). Also, Merry Christmas.
- almost 18y agoThe idea of goal column seemed so bizarre to me at first ("why the hell would anyone want to do that?") that I had no problem remembering what it did. Then I just kept on coming across situations where it's really useful (mainly when defining macros, but elsewhere as well). Rectangle commands on the other hand I've not managed to internalize yet, I know they exist and I see they must be very useful. But whenever I come accross something that possibly could use them I end up using something else.
- 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).