4 ms·
It is true that commands are at the heart of Emacs but as soon as you move beyond very basic use, invoking commands in ways other than through the keyboard beco
by kleiba 6y ago
It is true that commands are at the heart of Emacs but as soon as you move beyond very basic use, invoking commands in ways other than through the keyboard becomes impractical. I'm not only talking about keyboard shortcuts but also about the fact that a lot of these commands actually take parameters that would be difficult to provide by mouse.
Emacs out of the box comes with a menu system. This is very good and useful for newcomers because it not only gives a familiar feel, it also helps discovering functionality. However, it is no coincidence that a lot of power-users turn off menu and toolbar, as evidenced e.g. by Steve Yegge's "effective emacs" tips (https://sites.google.com/site/steveyegge2/effective-emacs#item7 https://sites.google.com/site/steveyegge2/effective-emacs#it...). Now, not every user is a power-user, there is of course a spectrum, but to me it is fairly clear that the way Emacs is designed, mouse-based usage would be a limiting factor.
- thom 6y agoI too turn off the menu and toolbar in Emacs, and I'm not saying the setup in the article sounds good to me for that or any editor. But to give you an example of why I think it's an important point, I would absolutely love to be able to issue commands by speech, for example, for things I don't use very often, or just never remember what I've bound them to (or even for stuff I don't remember the name for). Some people _have_ this setup, I've just never invested the time. But it's possible because fundamentally Emacs is a platform first and an editor second. I doubt it would be a very popular platform without the ability to make keybindings, but you nevertheless you could still build useful apps on top of it, and I find that quite interesting.
- kleiba 6y agoThere's still a difference though between a setup that uses keyboard + speech vs. one that mixes keyboard and mouse. For instance, you don't have to take your hands off the keyboard to issue a speech command. Also, there's a fundamental usability difference between voice input and mouse input in that the strength of menus+mouse lies in the fact that a user does not have to remember the exact command, it can be looked up / navigated to. For speech, you have to remember the command just as you do when using M-x <command> in Emacs right now -- unless you're thinking of a fully fledged spoken dialog system type of interface that would allow interactive descriptions.
- thom 6y agoI rarely remember commands when I’m typing, I use completion and apropos to remind me, feels like something similar must be possible. Either way, obviously I spend most of my life with hands on the keyboard and I’m not going to make out Emacs isn’t optimised in many ways for that. I just think it’s sad if someone thinks the big ideas in Emacs are just how it handles keybindings, that’s all really.
- kleiba 6y agoYeah, that would be sad. Luckily, I'm not one of these people but at the same time, there's no denying that keyboard is the main modality most Emacs interactions are optimized for. Your example of auto-completion is actually a good argument in favor of keyboard use since I cannot think of any other modality where a similar functionality could easily be implemented. That said, I'm not arguing that keyboard-based interaction is per se superior to any other form of input. But to me, it's undeniable that Emacs is de facto a keyboard-centric editor. And let's not forget the history of the software: it was originally developed when terminal-based interaction was the norm, (wide-spread) use of mice came much later.
- morelisp 6y ago> a lot of these commands actually take parameters that would be difficult to provide by mouse. Those that take interactive strings, maybe - but for those that take buffer positions or regions, which seems to me like a plurality if not majority, I would love to be able to invoke a command and then click+drag somewhere I want to apply, rather than having to set the point there and pop it back when done. Or the other way around, select a region, right-click to get a choice of commands that work on regions - this could even be auto-generated by looking at the keymap stack for commands that work on regions.