reddit / emacs
What are some must-have packages for emacs?
snjy35 · 2022-07-21 13:37
dharris · 2022-07-21 14:03
Really depends a lot on what you're using emacs for.
I load a bunch of modes that aren't built into emacs for files I edit, like `markdown-mode`, `json-mode`. I have some other stuff for Python development.
The two more general packages that are essential for me are `org-mode` (but not part of the core distribution) and `magit` (wonderful, wonderful git tool).
scherbi · 2022-07-21 15:22
treemacs for navigating projects and code files. it's amazing.
deaddyfreddy · 2022-07-21 15:32
I prefer dired/projectile/imenu, doesn't take extra space (permanently), has autocompletion (when using ivy etc).
scherbi · 2022-07-21 15:34
I have C-t bound to 'treemacs, so I can quickly toggle visibility.
deaddyfreddy · 2022-07-21 15:45
- use-package. I don't now, how many times it saved me from Emacs bankruptcy.
- magit and git-timemachine
- projectile or project.el
- minibuffer autocompletion: ivy/helm/vertico/etc
- swiper
- sudo-edit (I don't edit file under root often, so it's much easier to just call a command than remember tramp syntax)
- company. Some find it distracting, but TMO it's better to have it than not to have
- which-key. The same - no need to remember everything, just wait a bit to get a hint.
- avy. Jump exactly to the place you need.
- link-hint. Avy for links/buttons.
dpoggio · 2022-07-21 16:11
I don’t like super visual tools. I prefer text, narrowing and searching rather than looking. Treemacs and Neotree are fancy but useless to me.
scherbi · 2022-07-21 16:12
Well, I primarily use emacs in the terminal, and treemacs works well there too. Just text.
_viz_ · 2022-07-21 16:22
shell-command+, LaCarte, inspector. vc-backup is handy too.
dpoggio · 2022-07-21 16:51
This is a nice one. I would add undo-tree, multiple-cursors and YASnippet maybe. Never tried Avy TBH.
dpoggio · 2022-07-21 16:54
A visual representation though, a tree, you get me. I prefer find-like tools with helm narrowing than browsing a tree like structure.
varsderk · 2022-07-21 16:59
The basics:
- [straight.el](https://github.com/radian-software/straight.el) and [use-package](https://github.com/jwiegley/use-package) for package management are
the best.
- [Vertico](https://github.com/minad/vertico), [Consult](https://github.com/minad/consult), and [Marginalia](https://github.com/minad/marginalia/) by Daniel Mendler make minibuffer completion and a bunch of other basic actions awesome. I prefer these to ivy or helm—they feel much faster and stable.
- [LSP-mode](https://github.com/emacs-lsp/lsp-mode) for all your programming languages.
Next level:
- [Avy](https://karthinks.com/software/avy-can-do-anything/#wait-what-s-avy) does way more than you think. It really is the best.
- [Company](https://github.com/company-mode/company-mode) is a classic, though [Corfu](https://github.com/minad/corfu) and [Cape](https://github.com/minad/cape), also by Daniel Mendler, are really excellent.
- [Magit](https://magit.vc/) is the incomparable Git front-end. Nothing better.
- [Org-mode](https://orgmode.org/) for plain-text life management, if you're into that (I 100% am)
- [evil-mode](https://github.com/emacs-evil/evil) if you like vim bindings, like me.
Edit: grammar
[deleted] · 2022-07-21 17:35
Start with [try](http://github.com/larstvei/try), a package that allows you to try out Emacs packages without installing them.
[deleted] · 2022-07-21 17:41
[deleted]
[deleted] · 2022-07-21 19:03
[deleted]
SlowValue · 2022-07-21 20:04
[Awesome Emacs, a community driven list of useful Emacs packages, utilities and libraries](https://github.com/emacs-tw/awesome-emacs)
PersonalityOwn4076 · 2022-07-21 20:36
A few I've gotten really big into lately are Hyperbole, which is a game changer for me. Another one is svg-tag-mode, which makes my Agenda files seem much more modern, and more pleasant to look at.
fk00 · 2022-07-21 21:16
What's vc-backup? I couldn't find anything in Google.
agumonkey · 2022-07-21 21:19
user:
- magit
- paredit
- yasnippets
- multiple-cursors
libraries:
- dash
- use-package
- projectile
rswgnu · 2022-07-21 21:32
Hyperbole automatically turns your lifeless text into hyperbuttons with actions, across many major modes with no effort or markup on your part. It has extensive pattern and context recognizers built-in to link things together in sophisticated ways.
PersonalityOwn4076 · 2022-07-21 21:40
Once you get used to the implicit buttons, you can never go back!
xtifr · 2022-07-21 22:04
Entirely depends on your wants and needs. Vanilla Emacs is a lot more powerful than a lot of people credit, and has a lot of optional features that many people overlook. *Most* add-ons depend on specific needs.
IF you use the git version control system, then magit is a must-have. Emacs actually has pretty powerful version-control features built in, but for git (and only git), magit is totally on another level.
IF you program in languages that are not supported by vanilla Emacs, then you almost certainly want a *language*\-mode package.
IF you program in languages supported by LSP, then you almost certainly want an LSP server (if you don't already have one) and an LSP-support package for Emacs.
IF you're not satisfied with the default completion features *or* the bundled "ido-mode" enhanced completion framework, then you should definitely get another completion framework. There are several to choose from, so I can't call any *one* of them must-have, but a lot of people consider it a must-have to have one. (I use ivy.)
IF your operating system doesn't already include the packages you want, *then* a package manager like use-package is probably a must-have. But *why* would you use an OS that doesn't treat Emacs as a first-class citizen if you don't *have* to? (If you *do* have to, then you have my sympathies, but I've never used *any* of these packages, so I can't comment further.)
agumonkey · 2022-07-21 22:10
> git-timemachine
brilliant little mode
Nondv · 2022-07-21 22:20
I find it weird that only one person's mentioned helm.
am I lagging behind and there's some new cool kid on the block?
thetemp_ · 2022-07-21 23:59
The new cool kid on the block is Vertico, which has a selling point that it makes use of existing completion features in Emacs and is therefore more minimalist than other alternatives. I must be really cool though, cause I'm using fido-vertical-mode, which is built-in on Emacs 28 and up.
Helm is on another level. It's quite the opposite of minimalist, and there's nothing wrong with that!
[deleted] · 2022-07-22 01:24
[deleted]
Linuxllc · 2022-07-22 01:43
https://elpa.gnu.org/packages/vc-backup.html
arthurno1 · 2022-07-22 01:58
If you really ask for some bare essentialls, useful for everyone regardless of what they do with Emacs, I think those should have been included in Emacs:
[beacon](https://github.com/Malabarba/beacon)
[which-key](https://github.com/justbur/emacs-which-key)
[auto-package-update](https://github.com/rranelli/auto-package-update.el)
[dired-hacks](https://github.com/Fuco1/dired-hacks)
[helm](https://github.com/emacs-helm/helm)
J4cks1n · 2022-07-22 02:11
One of my must have is doom-themes. Makes emacs actually nice to look at.
Hooxen · 2022-07-22 02:34
a few heavy hitters not already mentioned: deadgrep, dumbjump, vterm. git-timemachine was already mentioned but git-gutter also great value add. vlf is great too if you want to peak around huge files.
_viz_ · 2022-07-22 04:43
use-package is not a package manager. Package.el is.
Nondv · 2022-07-22 06:58
ty! ill check it out
zenspider · 2022-07-22 07:21
Can you share your fido-vertical-mode setup?
emacs_expert · 2022-07-22 07:30
Yeah. I also like [diff-hl](https://github.com/dgutov/diff-hl) even though it's a little buggy.
trenixjetix · 2022-07-22 07:51
Read the tutorial pls
thetemp_ · 2022-07-22 08:05
Here you go.
(add-hook 'after-init-hook 'fido-vertical-mode)
;; Make the completion list appear immediately.
(customize-set-variable 'icomplete-show-matches-on-no-input t)
;; Fix wrapping of lines in minibufer with marginalia and
;; icomplete-vertical-mode / fido-vertical-mode.
(add-hook 'icomplete-minibuffer-setup-hook
(lambda () (setq truncate-lines t)))
;; Avoid annoying *Completions* buffer pop-up.
(define-key minibuffer-local-completion-map (kbd "TAB") 'icomplete-force-complete)
PatientInterview2015 · 2022-07-22 08:27
This man is great and explains emacs well. He rekindled my love of the editor
https://www.youtube.com/c/SystemCrafters
nullmove · 2022-07-22 13:48
I will try to suggest things not mentioned in this thread so far. But not all of these are generic, hence might not be of interest to you:
- embark (allows me to forget lot of keybindings)
- devdocs (read documentation with syntax highlighting right in Emacs)
- notmuch (can't imagine using any other mail client)
- crux + expand-region + multiple-cursors/iedit (utilities that are great to have)
- quickrun (for quick one-off scripts)
- dumb-jump (just works 90% of the time without any dependency other than ripgrep)
- xeft (it's like org-mode + deft, but also with very fast full-text searching with xapian)
- org-fc (for spaced repetition based learning)
- magit-delta (syntax highlighting in magit diffs)
- nov.el (very configurable ebook reader)
- darkroom-mode + spell-fu + mw-thesaurus + lingva (for writing prose)
- org-super-agenda (it's like default org-agenda, but with ability to logically group things with programmable rules)
- org-ql (allows you to use org-mode as text-based database, and then extract things of interest declaratively)
- wgrep + visual-regexp-steroids (adds new dimensions to search and replace)
- link-hint (it's like ace-link, but more modes are supported)
- restclient/ob-restclient/verb (for API testing)
- web-mode + emmet-mode (for front-end shit)
varsderk · 2022-07-22 13:48
Another selling point of Vertico is that it composes well with other packages. Consult and marginalia in particular work nicely by design.
thetemp_ · 2022-07-22 16:20
Yes, you may have noticed in my other reply that I had to add a setting to keep marginalia's lines from wrapping.
I like Vertico a lot actually. One thing I miss is the included `vertico-quick` package that lets you select completion candidates as if you were using Avy.
But I'm trying to see how much I can do with built-in packages right now, and icomplete/fido-vertical aren't bad.
Ghosty141 · 2022-07-23 13:51
Corfu is GREAT. I switched from company and I love it.
_viz_ · 2022-07-23 15:58
Hyperbole's implicit buttons let the text speak for itself which is miles ahead of other parts of Emacs where the text attains a specific meaning because someone wrote code to buttonify it. This "let the text speak for itself" paradigm taken to the extreme can be found in acme(1) from Plan 9 and whose users enjoy a effortlessly hyperlinked platform in its native environment. Did it take following a set of conventions to achieve that? Yes---take the lookman command from 9front as an example: its output is in a format that can be digested by acme(1) so you just click on it and it prints the manpage in a new window---but that does not mean it is not easy to extend acme(1) to make it understand other syntaxes, it is a simple matter of writing a matching rule for it.
I would suggest to read the help text editor (acme's predecessor) by Rob Pike to anyone interested. I, for one, wish Emacs took the approach of letting the text speak for itself approach instead of writing major-mode specialising at a task and leave the editor lacking in other areas.
PM_ME_YOUR_SOCKS_BOY · 2022-07-23 17:17
don't really understand what straight.el is doing exactly and why one should use it with use package
varsderk · 2022-07-23 19:34
use-package doesn’t actually do the installation of packages. By default it defers to the built-in package.el module. straight.el is an alternative to package.el that gives you reproducible builds.
varsderk · 2022-07-23 19:35
It is great. Very flexible and customizable. I’ve really enjoyed using it.
comproprasad · 2022-07-28 01:01
Try vundo instead of undo-tree.
dpoggio · 2022-07-28 02:49
Will check out, thx
cactus · 2022-07-28 05:30
Olivetti turns emacs into a distraction free word processor. I love it, and use it almost daily.
Fountain-mode is a great tool for writing movie scripts in the industry standard format.
They are by the same author, and work perfectly together!