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.

  • kyub
    link
    fedilink
    English
    arrow-up
    3
    ·
    3 days ago

    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.