Emacs
Emacs is a fully-featured programming environment.
It's often (or most commonly) referred to as a text editor, but this isn't the case. Other editors are designed to offer first-class interfaces for configuring keyboard shortcuts, text configurations, etc.
However, emacslisp is structured not to be used as an editor configuration with some additional logic capabilities, but rather as a fully-featured programming language with proper language facilities.
Emacs is my desktop environment. EXWM was my window manaager, elfeed is my RSS reader, mu4e is my email client and so forth. The one program that does not have a proper Emacs interface is the web browser, so I use Firefox (and web apps) for most other tools.
This isn't to cause myself undue pain. It reduces context switching between the keyboard shortcuts of many programs and their keybindings, and allows time tracking, task tracking and information management (all fractured, often difficult concepts) to be managed by Org Mode entirely within Emacs. This tight integration allows me to take notes and track time without having to switch contexts to other programs with other user interfaces.
^ I don't really stick to this anymore, because emacs is honestly not slow and performant. It's much better to treat Emacs as a text editor and have other purpose built programs. Though there is a future where all text editing configuration is orthogonal to programs and handled independently, it is far from here yet.
Tools
- cloudmacs
allows you to self-host your emacs configuration and access it in the browser. :O
Frameworks
- Doom Emacs
The framework I use; focuses on optimization and concise configuration
- Spacemacs
I used to use this. It's too bloated for my tastes.
- Scimax
Scientific Emacs framework. Set up to serve as a good introduction!
Configurations
https://github.com/sulami/dotfiles/blob/master/emacs/.emacs/README.org: good example of a literate emacs configuration http://aaronbedra.com/emacs.d/: great example of a configuration rendered as a webpage with org mode!
https://www.reddit.com/r/emacs/comments/4srze9/watching_youtube_inside_emacs_25/ watching youtube in emacs https://www.emacswiki.org/emacs/ExampleConfigurations https://github.com/munen/emacs.d https://github.com/jhamrick/emacs https://github.com/howardabrams/dot-files https://github.com/jethrokuan/dots https://github.com/codygman/hci https://github.com/zaeph/.emacs.d https://github.com/Ambrevar/dotfiles
https://www.youtube.com/watch?app=desktop&v=PKaJoqQQoIA configuring emacs configuration https://github.com/shrysr/.emacs.d https://github.com/purcell/emacs.d https://github.com/zaeph/.emacs.d https://github.com/munen/emacs.d
Nix and Emacs configurations
https://github.com/kinnala/nixemacs https://github.com/benley/dotfiles/blob/master/overlays/emacs.nix https://blog.jethro.dev/posts/nix_buffer_emacs/ https://github.com/purcell/nix-emacs-ci: test your emacs code against a wide variety of upstream configurations https://www.reddit.com/r/emacs/comments/ekr5ek/experimenting%5Fwith%5Fremembrance%5Fagents/ https://github.com/zachcurry/emacs-anywhere use emacs anywhere m g vs goto line in emacs
https://www.reddit.com/r/emacs/comments/hywxef/visually_differentiate_between_links_to_files_and/ differentiate between links to files and links to websites in org
Doom configuration
https://github.com/forrestchang/.doom.d sunnyhasija/Academic-Doom-Emacs-Config: My doom emacs configuration files
https://github.com/NatTuck/doom-config/blob/master/config.el#L12 -- nat tuck's configuration https://github.com/christabella/doom-emacs-config https://tecosaur.github.io/emacs-config/config.html https://dotdoom.rgoswami.me/config.html https://github.com/christabella/doom-emacs-config comprehensive instrs
Optimisations
- don't change gc-cons-threshold
fix constant garbage collection by setting it very high when something happens, and changing afterwards to prevent constant garbage collection and freezing when the heap gets too big
- https://anuragpeshne.github.io/essays/emacsSpeed.html
other emacs pro tips
Community
Package Suggestions
- tanglesync
sync org mode files with dotfiles external to them
emacs matrix client emacs matrix client
add drawings to org mode from your ipad, and orch, an alternative for Android
emacs binding for recoll text search engine
peek at a window inline!
gantt chart (??) in org.
declarative format for org capture templates. use this in the future - seems better!
binding commands to combinations of keystrokes
https://github.com/ibizaman/emacs-conflict emacs conflict
https://git.carcosa.net/jmcbray/gemini.el gemini server for emacs
https://www.emacswiki.org/emacs/TrampMode#toc1 tramp-mode for editing files on servers
https://github.com/davazp/graphql-mode gql mode for emacs
https://github.com/lassik/emacs-format-all-the-code autoformat source code for many languages
Links
Brief guide to Emacs hooks emacs everywhere literate devops with emacs
Magit
https://magit.vc/manual/forge/Token-Creation.html#Token-Creation magit has a cool interface for making pull requests, but the documentation does not make clear how fully featured it is...
emacs
https://karthinks.com/software/batteries-included-with-emacs/ fun things that come with emacs!
Plugins
https://github.com/abo-abo/avy jump to visible text with a character based decision tree http://www.howardism.org/Technical/Emacs/templates-tutorial.html configure snippets in emacs https://www.youtube.com/watch?app=desktop&v=gfZDwYeBlO4&%3Bt=2785s 'play emacs like an instrument' https://www.youtube.com/watch?app=desktop&v=4-ubCJF9htw emacs macros and hacks
Mail Overview of reading and writing email with Emacs Mu4e - dealing with sending html Manage multiple emails with MU4E emacs wiki MU4E Manage mail deletion with NotMuch literate devops with emacs using dir-locals send html email with mu4e mu wizard for easily setting up mu4e
Music
Music Emacs Org and Overtone quick intro · Bastien Guerry - Liberté, informatique, choucroute. Using Emacs Music with MPD Emacs interface for MPD Music Player Client for Emacs Configure EMMS --- Emacs Multi-Media System on GNU/Linux