6 ms·
I think another reason why Emacs is in a second golden age is due to all of the new plugins that have come out in the past 3-5 years and how those plugins have
by cyrialize 3y ago
I think another reason why Emacs is in a second golden age is due to all of the new plugins that have come out in the past 3-5 years and how those plugins have affected Emacs.
For example, Eglot and use-package being part of Emacs core.
Additionally, there's also just many new plugins for the base-level things. I never thought there would be alternatives to completion frameworks like Helm or Ivy, until new ones came out. It's all been very exciting.
- wolverine876 3y agoCould you describe some of these plugins to people outside Emacs, and those who might be (re)considering it?
- cyrialize 3y agoMy apologies for missing this! 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.
- pasc1878 3y agoThink of any one plugin you have for another editor - and you probably have it in emacs. The one that I think makes most change is treemacs - this gives you a tree view at the side of the window of files.
- ttepasse 3y agoLike every other GUI Editor and IDE of the last 20 years has built in as core part of their interface? Or du you mean something different?
- seti0Cha 3y agoI 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.
- TeMPOraL 3y agoSomeone 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.html 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.
- wolverine876 3y ago> make Org Mode extend "today" past midnight. See: http://doc.endlessparentheses.com/Var/org-extend-today-until http://doc.endlessparentheses.com/Var/org-extend-today-until.... I set mine to 3 (as in 03:00). That's pretty neat. Now I'm trying to remember how I live without it.
- spit2wind 3y agoEglot and use-package allow Installing packages from source, allowing you to easily switch between bleeding edge, tagged versions, and contribute changes.
- iLemming 3y ago> Could you describe some of these plugins 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. https://www.reddit.com/r/emacs/comments/1aey0eo/they_are_surely_not_joking_when_they_say_emacs/koca123/ https://www.reddit.com/r/emacs/comments/1aey0eo/they_are_sur...