this post was submitted on 25 Nov 2023
1 points (100.0% liked)
Emacs
311 readers
2 users here now
A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!
Get Emacs
Rules
- Posts should be emacs related
- Be kind please
- Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.
Emacs Resources
Emacs Tutorials
- Beginner’s Guide to Emacs
- Absolute Beginner's Guide to Emacs
- How to Learn Emacs: A Hand-drawn One-pager for Beginners
Useful Emacs configuration files and distributions
Quick pain-saver tip
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
For me, it is not the ability to write plugins : most editors have those to some extent.
For me it's more about the ease of writing your own customizations and not be limited to those provided by your plugins.
A few examples
The strength of emacs is not its plugins, it's your ease of making it your own
VSCode plug-ins is definitely playing in a rich man’s garden: https://code.visualstudio.com/api/extension-capabilities/overview
You’re allowed to do what they say you can do. There’s a list and it’s not infinite.
Part of the reason is VScode is very complex. Whereas the core of emacs is a lot simpler. It’s significantly easier to hook into the core of emacs and also safer too.
The emacs source code has about 250,00 lines of C. And about 1 million lines of elisp (including all bundled packages). You can change all of that elisp at run time.
A great example of this is this video https://youtu.be/w3krYEeqnyk?si=JKvVsgMO89DbCkhF
Besides being easy to extend, there are also small general features that are very useful and I haven't found anywhere else, such as narrowing. And these small features can be combined and composed. For example, suppose you just learned you can use dired to rename a file, now whatever you have already learned to edit text can be used to mass rename files, which could be using macros, using multiple cursors, using a regex query and replace, etc.