So, I just started getting into emacs and now I am curious about what cool features there might be, that I dont even know exist. No matter if its packages or keybinds.
Would also like if someone has some suggestions for using emacs for coding (primarily python and c) and would really appreciate if someone knows how I can set a background image to emacs.
Try doom emacs
Or spacemacs
In more or less random order:
- Org-Mode is one of the most amazing packages for Emacs. Some people use Emacs only for that. I personally use it for second-brain style note taking, TODO lists, simple presentations, PIM, Wiki-like articles, writing docs (and then exporting it to other formats), and even some simple integrated spreadsheets/tables including some simple calculations
- Magit is a really good Git frontend. Some people use Emacs only for that.
- Use “use-package” to install/configure packages. Streamlines configuration a lot, compared to the old days.
- Use the “no-littering” package to move a lot of randomly generated files into centralized directories
- Use winner mode to undo/redo window configuration changes
- Use which-key to show a popup of available keybinds when typing something
- Use the integrated “time” package to create a world clock view
- Use the integrated modus-themes for highly configurable themes with a nice contrast (since I’ve spent some time configuring that theme, I’ve stopped using any other theme)
- Use hl-todo package to highlight keywords like “TODO”, “NOTE”, “WARNING” or “DONE”
- Use doom-modeline for a nice modeline
- Use nerd-icons to add nice icons to many views
- Use avy to quickly jump to specific locations, lines or characters using different keystrokes
- Use eshell for a quick shell (which works the same on every Emacs, regardless of the OS) and/or either vterm or eat if you need a full-fledged terminal emulator
- Use embark as a “context menu” when cursor is over anything (bind embark-act to e.g. “C-.”)
- Use editorconfig package to specify/load different editor configs per project
- Use treesitter and eglot (or lsp-mode) for modern syntax parsing using language servers
- Use neotree (or treemacs?) as a file tree viewer, but dired is also cool if configured well
- Use org-modern package to beautify org mode display
- Use org-appear to hide formatting characters unless cursor is directly next to them
- Use Unicode characters to beautify otherwise ugly or bland default characters, e.g. set " ▾" for org-ellipsis
- Use gcmh or similar packages or config settings to improve general Emacs UI responsiveness
- Use packages which improve the minibuffer, buffer switching, completion, and basic things like that. There are several good ones and you can’t really go wrong with any, I just think the newer, more well-integrated ones like consult, vertico, orderless, marginalia, and so on are “nicer” than the older less well-integrated ones like helm, ivy and so on
- Bind “goto-last-change” to a nice keybind
- Bind “quick-calc” to a nice keybind
- Bind “org-agenda” to a nice keybind
- Bind “toggle-truncate-lines” (line wrapping) to a nice keybind
- Bind “kill-this-buffer” and “kill-this-buffer-and-window” to nice keybinds (e.g. C-x k / K)
- Bind “consult-line” (or something similar) to e.g. C-s
- Bind all window and buffer cycling/management related commands to nice keybinds
- If you want an easier entry into Emacs and are already a Vim user, try the Doom Emacs distribution. If you want to start with Vanilla GNU Emacs but want a decent but minimal default configuration, try emacs-bedrock.
I use doom emacs. has everything I need, even use it as my regular terminal now. check it out, it’s pretty damn good what you can do with it.
I remember org-mode was quite impressive, like really unique. I used it for a while to publish a blog.
alias emacs=vi and start using a real editor
I was like that ~20 years ago. But since around ~10 years ago I realized that Emacs basically includes Vim. And much more. Yes Emacs is hard to get into and has a weird language, but it’s immensely powerful, extensible and also extremely reliable and future-proof. No you probably shouldn’t do everything inside Emacs. But several things are powerful, well-integrated and efficient.
Vim is still great though, I use it in the terminal for quick random config file edits or over ssh sessions (haven’t gotten around or used to trying tramp mode in Emacs). It’s great because some variant of it basically exists on every Unix-like system. And I also highly recommend learning modal editing with the Vim keybindings, which works inside Emacs as well of course. The default Emacs keybinds are unergonomic at best. But it also includes a mode for using Vim keys, and that mode is basically just as powerful as Vim itself. Not half-baked at all, which you might assume in such cases.
My point exactly. Emacs is more than an editor, it’s an everything runtime environment, nearly an opening system in itself. But my computer already has an operating system. I prefer to always use the simplest tool that gets the job done well.
Lol, discussing vi vs. Emacs makes me feel young again. DOS vs. Unix anyone? C vs. Pascal? Or Amiga vs. Atari? 😁





