14 ms·
Emacs has thousands of shortcuts for every conceivable piece of functionality. Personally, I will remember shortcuts for commonly used things - and all the othe
by JetSetWilly 6y ago
Emacs has thousands of shortcuts for every conceivable piece of functionality. Personally, I will remember shortcuts for commonly used things - and all the other functionality may as well not exist if it is not easily discoverable.
A gui is a nice way to make a lot of functionality discoverable.
- fluffything 6y ago> may as well not exist if it is not easily discoverable. But it is easily discoverable ? I literally just do M-x and can I get a buffer open with _all_ emacs commands and their explanation, and can do a fuzzy search on that, e.g., so if I type "M-x align re" I get only one command highlighted that can just execute "align-regexp". That's the main thing I like about emacs. I don't have to remember a million shortcuts, just what things are possible, and then I just type a description of what I want to do and hit enter and that's it. A GUI / having to use the mouse would push me completely out of "the zone".
- JetSetWilly 6y agoThat's cool if you can remember roughly what the command is called. For example, I wanted to format some XMl in a buffer. In a GUI, I'm fairly sure I could find this easily, in emacs it is "go to google" and find out that you want sgml-petty-print or whatever. So a bunch of M-x searching for "format" is hopeless. Emacs tends to have its own names for many concepts, making things even more obtuse.
- BeetleB 6y agoIn about 70-80% of the cases, using ido or helm, with some guesses on what the command name may contain, is enough to find me what I need. But yes, to be frank, my productivity in Emacs really took off once I started memorizing things with flashcards. I currently have 603 cards for Emacs (including elisp). (And telling a newbie that would cause a lot of despair!)[2] The other thing that really helped is I started using/making hydras.[1] So now when I encounter a new, interesting mode, instead of memorizing lots of command names or keybindings, I just build my own custom menus. [1] https://github.com/abo-abo/hydra https://github.com/abo-abo/hydra [2] But it really shouldn't. Emacs, with all its packages, and modes, is like a language with all its libraries, and not just the standard ones. Remembering all the commands/keybindings is akin to expecting someone to know all the APIs in all the libraries. It's OK if you don't. Most people don't.
- jcynix 6y agoMicrosoft's office products are mostly GUI centered. But I rarely can easily find ways to accomplish things there and instead get lost in their GUI, which sometimes looks like a twisty maze of little passages all different. So "GUI" isn't a panacea for ease of use IMO. In emacs I can use "apropos" (i.e. "c-h a") or "c-h v" for example to search for ways to accomplish what I'd like to do.
- fluffything 6y ago> That's cool if you can remember roughly what the command is called. > > [ ... ] > > In a GUI, I'm fairly sure I could find this easily, in emacs it is "go to google" and find out that you want sgml-petty-print or whatever. I just yank into a new buffer, set it to xml mode, "M-x indent" reveals the command to format xml (indent-region or indent-buffer or something like that), enter, yank it back. Done. In an editor with a gui, I would just go to "Help -> Search" and do pretty much the same, which would reveal the menu item to click to achieve something. I find emacs ido/helm workflow for this much better. Never need to memorize anything.
- jolmg 6y agoIf you hit `C-h b` you get a list of all the current keybindings. `C-h m` lists the keybindings focused on the active modes. You can search either for the functionality or binding you're looking for. Also, `C-h k` followed by any keybinding will describe the keybinding. If you get the documentation of a function or command with `C-h f`, it'll also mention the keybindings it's bound to, if any. All these `C-h` help keybindings are described if you hit `C-h C-h`, and they're also mentioned in the tutorial that's linked to when you start up emacs for the first time on default configuration. These helps are also available in the GUI menu bar, for example Help > Describe > List Key Bindings, which also mentions the keybinding `C-h b` to the right of that. How is discoverability of keybindings lacking?
- morelisp 6y agoDiscovery of functionality is lacking, not the keybindings. Most of the time I want an answer to "how do I do...?" not "what happens if I press this key?", and even isearching the help buffer I have to guess did they suffix `at-point` or not? did they call it `swap` or `transpose`? `forward` or `next`? did they make a `sexp` do something useful in this mode, or will it just pick something between parens, or some awful mix of the two?
- wtetzner 6y agoDoes a GUI actually solve any of these problems?
- morelisp 6y agoYes, a GUI allows you to give richer contextual feedback without introducing modality to the core functionality. For example, if I can click and drag, I do not need `transient-mark-mode`, a tricky modality in our "non-modal" editor. If I can summon a menu of relevant commands for a region, I do not need a menu of all commands filling up multiple pages of a separate window. A GUI also introduces other problems, but the ability to just point at what you want to know more about or do something with has been a cornerstone of discoverability since the introduction of the mouse.