9 ms·
Emacs' fundamental problem is that in text editing, there are many equally good ways to do things. It's equally good for Undo to be on control _ as on control
by vintermann 5y ago
Emacs' fundamental problem is that in text editing, there are many equally good ways to do things.
It's equally good for Undo to be on control _ as on control z. It's equally good for scrolling to move the cursor as to not move it. It's equally good to have Lisp as a scripting language as JavaScript. No, really, I mean it. It's not a big deal in the big picture.
And Emacs choose perfectly good, perfectly sensible defaults on all these things back when it came. (That can't be said about all editors from that time.)
It's just that in the 30+ years since, the world has converged on other defaults. Every little thing is done different than you're almost certainly used to - yet not different enough that anyone can claim it's somehow superior (unlike its modal cousins from the same period. I think their claim is dead wrong, but at least it's different enough that they can persuade some).
- isolli 5y agoThere's nothing worse than reflexively typing ctrl+z to undo in Emacs and instead have the window disappear into the background!
- ajross 5y agoIn my .emacs since time immemorial: (global-unset-key [(control z)]) It's absolutely true that defaults are "bad" in many modern environments (though remember C-z to suspend in a terminal environment makes perfect sense!). But the nature of the editor is customization like this. People unwilling to do this just aren't ever going to be happy with emacs. And for those just learning, tricks like that (c.f. emacswiki.org) are a very reasonable entryway into a world of possibilities. I mean, look, Emacs isn't ever going to be VSCode. If you want VSCode, use VSCode. It's a great editor, and frankly at this stage I think nothing is going to do VSCode better than VSCode already has. Emacs is something different, and we might as well embrace that. (Not that I'd object to switching some of the dumb defaults around, of course. I just don't think that's going to help very much if your goal is "displace VSCode").
- teddyh 5y agoCtrl-z for suspend is useful in the terminal, though, so maybe something like this? (if window-system (global-set-key (kbd "C-z") 'undo))
- tom_ 5y agoSuggested tweak: (when window-system (global-unset-key (kbd "C-z")))
- ajross 5y agoNope. Again, context matters here. I never use emacs in a terminal; all editting of files on remote systems is done in a local X11 emacs over ssh. And this is not because of circumstance but because making that choice opens up more doors. I can have keybindings not just on C-z but ones that aren't representable in the terminal at all (e.g. I like to put end/beginning-of-buffer on C-. and C-,) Would I submit my choices as good defaults for new emacs users? Hell no. But they remain good choices nonetheless. That's the essence of my point, not the minutiae.
- servilio 5y agoThe recommended way to do this now seems to be: (when display-graphics-p (global-unset-key (kbd "C-z"))) Also, though this works with Emacs running as a server, I find it better to just quit emacsclient instead of learning to do something different depending on what environment it is running.
- babypuncher 5y agoI find this at least a little frustrating. I haven't used Emacs, but when using other apps that use non-standard defaults (or just defaults that I am not used to), changing one shortcut leads to a cascade where I have to change many shortcuts. I now have to spend a somewhat significant amount of time configuring a new piece of software before I even know if I actually like it. Shipping with some easily configurable presets to mimic other popular tools would probably help new users a lot.
- a_e_k 5y ago
- ReleaseCandidat 5y agoActually, there is. Typing `C-x C-s` in a 'normal' Editor. Always happens to me :(
- isolli 5y agoSame here! It's just easier to undo :)
- foobarian 5y agoYou guys both got nothing on pressing Cmd-W on a MacOS terminal when you intend to copy a selection. :-( I swear whoever designed that UI must have been a vi partisan.
- b3morales 5y agoI found it better to make Option (rather than Command) be Meta for this reason.
- bluecatswim 5y agoYep, for me it's this. I don't know why others are complaining about the other way around, maybe it's because I thought of Emacs as being different from other editors right from the get go, but I doubt I've ever accidentally entered CUA shortcuts in Emacs. But Emacs shortcuts in normal editors while using school PCs was something I did all the time.
- kwhitefoot 5y agoDone that about a dozen times today!
- jyriand 5y agoOr while cutting a text in browser and typing ctrl+w, thereby closing the tab.
- kqr 5y agoThis sounds like it's not written by an actual Emacs user... and the fact that I can tell points to the real fundamental problem of Emacs: it's not a text editor but the real thing it is is so complicated it finds it easier to market itself as a mere text editor. What is Emacs really? It's a virtual Lisp machine with a standard library for writing graphical text applications. It's more like the JVM than like Notepad. It just happens to come bundled with a text editor (and a file manager, and a calculator, etc) as example applications. You're free to install a better text editor than the bundled example, and many people to (see the popularity of Evil, for example). But of course, this is a much more complicated point in space to sit in, so Emacs markets itself primarily as a text editor and we get confusion like yours as a result.
- jimbokun 5y ago> What is Emacs really? It's a virtual Lisp machine with a standard library for writing graphical text applications. If you substitute Javascript for Lisp, doesn't that describe Visual Studio Code pretty well? So now there's a product that leverages the architectural advantages of Emacs, with modern defaults across the board.
- hollerith 5y agoUnless I was very unlucky in my decisions about what and how to learn about vscode or my ability to learn has dropped more than 10-fold between the time I learned to modify Emacs and the time I tried to learned to modify vscode (which is unlikely but not impossible: it was an interval of 28 years) emacs is much easier to learn to modify than vscode is unless one is already a web dev. Of course, if one does learn how to modify vscode, one has a skill (namely, web dev) in much higher demand on the labor market than knowledge of Emacs Lisp.
- kqr 5y agoI haven't personally used VS Code much, but from what I understand, it still runs in two castes that don't, generally, mix: there's its core code, and then there's plugins, and the latter exists on a separate plane from the former. You can't write a plugin that redefines some core behaviour. The functions internal to the core are not all automatically accessible for any plugin. Plugins don't become fully integrated with the core code to the point where the source file location is your only hint as to whether behaviour comes from a plugin or core functionality. (A non-Emacs user might very well go "Emacs plugins can do what now?" at the description of a plugin re-defining a core function. That's a fully understandable reaction. That level of hackability is not for everyone. But as far as I can tell, it's unique to Emacs and very small set of other software.) But I could be misunderstanding this. Maybe VS Code actually does have Emacs-level hackability, in which case I'd probably want to try it out more than I have!
- d0mine 5y agoTo understand why emacs is great, think of it not as an editor but as a platform. Killer apps for me are: - magit :: everyday things are just a key away, less common things are visible, complex things are possible - Org-mode :: whole life in plain text (for some brain types it enables almost impossible to achieve otherwise + Org-Babel + emacs-jupyter
- pfortuny 5y agomu4e has simplified my life enormously. I can do things no other would let me do easily. Namely: create automatic exams with latex, each for a different address and send each to its corresponding pupil, all in a single script. Attaching is a breeze, by the way.
- teddyh 5y ago> for Undo to be on control _ as on control z. Well, Ctrl-_ is three keys; control, shift and _. However, Undo in Emacs is actually designed to be on the two-key combination Ctrl-/ and the fact that this key produces the same ASCII control code as Ctrl-_ is incidental.
- didibus 5y agoActually, ounce I got used to Emacs choices I ended up liking them better. Hard to say why, I think it's that when you start adding more and more shortcuts, the choices Emacs made start to make sense in terms of maximizing all the various bindings.
- WalterGR 5y agoThe biggest problem for me is the constant context switching between those defaults chosen 30 years ago and the defaults converged on by every other app I use. Of course, no context switching is needed if you do everything in Emacs.
- oblio 5y agoYou can't. Everyone except for RMS also uses at least a real web browser.
- babypuncher 5y agoClearly this is just how Emacs cultivates vendor lock-in.
- avgcorrection 5y agoI would be very happy if I could use Emacs’ text editing and text manipulation/navigation everywhere. Things like a real IDE with an Emacs editor. Or the IDE being controlled by Emacs. Or a desktop manager controlled by Emacs. That Emacs lets you design a great user interface is exactly why some people want to “live in Emacs”. (Similar to how some misguided souls prefer to “live in the terminal”...)
- agumonkey 5y agoI never minded emacs peculiar history / bindings. It's a no brainer to swap between vi / emacs / CUA. People trying to learn very deep kind of software should be ready to swallow a little more info than that IMO.
- Torwald 5y ago> I think their claim is dead wrong Out of genuinely interest, what claims specifically are you addressing here and why do you think are they wrong?