Someone else can tell you about Magit (the gold standard UI for Git), or Org Mode (the best markdown alternative / journal / planner / TODO / PM software, if only more people used it...). I want to take a moment to comment on:
> many new plugins for the base-level things
GP mentions Helm and Ivy. These "completion frameworks" are editor-wide, full-blown rich and ergonomic UI enhancements, each with its own philosophy. Each one is an island though - you have to buy into their philosophy wholesale[0]. At some point, however, the community identified the various paradigms and patterns in those completion UIs/frameworks, and where they map to existing core Emacs ideas, and a new breed of libraries were born - Corfu, Vertico, Embark, and many others, each of which provides a single piece of the equation, and deeply integrates into built-in Emacs APIs whenever possible. As a result, you can now mix and match those libraries to replicate something like Helm or Ivy, that works better, is more flexible, and more friendly to code against.
This is perhaps less interesting for casual users, but it means an important philosophical shift in community, towards more targeted and composable plugins. For casual users it just means more powerful, stable, better cooperating plugins.
--
Okay, I lied. Let me talk about Org Mode. My favourite little feature, which I miss from literally any other software I'm using (like Microsoft's To Do I've been using lately for ad-hoc personal things[1]), is `org-extend-today-until`. Made by and for people like me, who always find themselves reviewing plans after midnight, it's a variable you can set to make Org Mode extend "today" past midnight. See: http://doc.endlessparentheses.com/Var/org-extend-today-until.... I set mine to 3 (as in 03:00).
Flexibility of Emacs means people just implement random stuff like this in the first place - features not relevant to Minimal Viable User, but very useful for a subset of users.
--
[0] - Though in Emacs land, this just means it's only tad more annoying to extend, modify or repurpose pieces of those frameworks.
[1] - Org Mode is the bestest, but still has so-so mobile support; currently MS To Do is just the least annoying tool for private planning on the go.
Now mark them as TODO items, with one being in-progress:
* TODO One ..
* TODO Two ..
* INPROGRESS Three ..
In Emacs you can then view your calendar, or org-agenda, which will have the current day and all items on it.
You can add a deadline to an item, and it will jump to that day on the calendar/agenda.
Can you keep track of simple items in google docs? Absolutely. Can you make them appear on a google calendar? No. (Yes I realize Google has todo-app, and that does. Even with recurring scheduling, but that's not tied in to google docs either)
Easy examples, any source that is delimited with `#begin_source language` will have whatever the editor would do for `language` in the delimited section. Searching the file is exactly like searching any other file. Committing it to source is trivial, as it is a somewhat normal text file.
That last actually shows how emacs can be treated like what a lot of folks use jupyter for. With the main difference that the "on disk" form is a somewhat normal text document using fairly trivial markup.
Eglot is a package that works with LSP (Language Servers). There is another one called lsp-mode.
Eglot is integrated within Emacs over lsp-mode because it was specifically made to use existing hooks that Emacs has.
What this means is that you'd use the base Emacs command for finding a reference, and Eglot will populate the source for that command.
Whereas with lsp-mode, it has it's own command you'd run for finding reference. I do think you could also write code to have lsp-mode populate Emacs commands.
That being said, my impression is that Eglot has better integration with Emacs - which is why it became part of Emacs core.
(It's been a while since I've reviewed the Eglot vs lsp-mode discussions, so anyone feel free to correct me).
Use-package is a package for setting up your Emacs configurations. It allows you to place settings for individual packages in nice little sections. It's mainly used for organization but you also gain a plethora of options as well, like deferring to load a package until you open a file that requires it.
You also don't technically need to configure Emacs by hand by writing code lines. You could always do M-x customize and change settings that way. Emacs will auto-generate code from that and place it at the end of your configuration file.
That being said, this becomes quite messy to look at - so people prefer to use M-x customize to find the setting they want, and then they write it by hand in their config.
A big usage of use-package that I love is that you could specify specific settings that tell Emacs to enable it through M-x customize. If you don't know what I mean by that - that is totally ok. You'll learn about this more if you ever dive into Emacs and want to configure your own settings.
I don't know what plugins OP had in mind, but for me at least, a bunch are usability improvements that make the Emacs environment easier to program. use-package, for example, provides a nice way to programmatically install and configure all the plugins you need. My emacs file config file now is self-bootstrapping - I drop it on a new machine, fire up emacs and everything is there and configured as I like. You could do this before, but it was more work and I had never bothered previously.
In this deeply nested Reddit comment, when someone said: "Imo emacs shines when editing, not writing.", I tried giving a few practical examples of how I use Emacs for writing plain text. I'm just gonna list the use cases without specifics, you can click the link below and find details of each package if you're interested. Note that this is a single aspect of things for which I use Emacs. Many other possibilities are abound.
Emacs is incredibly incomparable for writing. I don't even try to type anything longer than three words in anything else. I always try to find "edit-with-emacs" feature wherever I go - I built one for Mac, then I wrote one for exwm, then I did the same for stumpwm . I recently started using AwesomeWM, and now I have it there too. If I'm ever forced to work in Windows, I can promise you, finding a way to edit with Emacs would be the very first thing I will try to solve.
When I'm typing in Emacs, I have:
- Spellchecking. When I mistype the previous word, I would just tap the comma twice, and it autocorrects it. If I need to actually insert comma, I'd use comma and space (which I always do anyway)
- I have thesaurus.
- I have Google Translate, for which I don't even have to switch the keyboard layout, meaning if I want to translate from Russian, it would automatically switch the layout to 'ru' and back to English when it's done
- I can check the etymology and definition of any word.
- I can count the number of sentences, words and characters.
- I can keep an eye on my writing with writegood-mode, it can look for duplicate words and use of passive voce, and perform Flesch–Kincaid readability test.
- Until recently, I was using Grammarly to check the text, these days I simply send it to chat-gpt, and it even shows me the diff upon completion.
- I can toggle "distraction free, zen mode", for writing.
- I can launch a web search on any selected text.
- There are various ways how you can preview the markdown.
- You can write helpers like wrapping a region in a collapsible section, or create "code sections" without any hassle.
- You can edit the code sections in their language environment, with syntax highlighting and REPL.
Eglot and use-package allow Installing packages from source, allowing you to easily switch between bleeding edge, tagged versions, and contribute changes.