Emacs config utilizing prelude as a base
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# Emacs Prelude
Prelude is an Emacs distribution that aims to enhance the defaultEmacs experience. Prelude alters a lot of the default settings,bundles a plethora of additional packages and adds its own corelibrary to the mix. The final product offers an easy to use Emacsconfiguration for Emacs newcomers and lots of additional power forEmacs power users.
!!! Important
Prelude is compatible **ONLY with GNU Emacs 25.1+**. In general you're advised to always run Prelude with the latest stable Emacs release.
You can support the development of Prelude via[GitHub Sponsors](https://github.com/sponsors/bbatsov),[ko-fi](https://www.ko-fi.com/bbatsov),[PayPal](https://www.paypal.me/bbatsov) and[Patreon](https://www.patreon.com/bbatsov).
## Features
* Improved UX, that's still in line with Emacs traditions* Sane defaults of baseline Emacs functionality* Automatic installation of many major programming modes on demand* A curated set of 3rd party packages to enhance the base functionality* Simple modular architecture* Easy customization
## Package Highlights
Here are some of the essential 3rd party packages that Prelude adds to Emacs:
* [ace-window](https://github.com/abo-abo/ace-window) (effective navigation between multiple windows)* [avy](https://github.com/abo-abo/avy) (effective navigation)* [crux](https://github.com/bbatsov/crux) (lots of useful editing commands)* [diff-hl](https://github.com/dgutov/diff-hl) (shows colorful diff markers in the gutter when you're editing files under version control)* [easy-kill](https://github.com/leoliu/easy-kill)* [editorconfig-mode](https://github.com/editorconfig/editorconfig-emacs) (teaches Emacs to respect [.editorconfig](https://editorconfig.org/))* [expand-region](https://github.com/magnars/expand-region.el)* [flycheck](https://www.flycheck.org/) (modern integration with many lint tools)* [guru-mode](https://github.com/bbatsov/guru-mode) (an Emacs guru that helps you learn basic Emacs keybindings)* [projectile](https://github.com/bbatsov/projectile) (powerful project navigation/interaction package)* [magit](https://magit.vc/) (the best git client in the known universe)* [git-timemachine](https://gitlab.com/pidu/git-timemachine) (navigate quickly through different versions of one file)* `nlinum` (line numbers in your buffers)* [smartparens](https://github.com/Fuco1/smartparens) (powerful package for dealing with expressions and matched delimiters in programming languages)* [super-save](https://github.com/bbatsov/super-save) (auto-save buffers when moving around)* [which-key](https://github.com/justbur/emacs-which-key) (shows you possible keybindings when you type a partial keybinding)* [zenburn-theme](https://github.com/bbatsov/zenburn-emacs) (Prelude's default color theme)* [undo-tree](https://elpa.gnu.org/packages/undo-tree.html) (A powerful way to navigate your editing history)
On top of this Prelude bundles a bunch of smaller packages and makesmany more packages available via optional modules.
## Programming Languages Support
The following programming languages have enhanced support in Prelude:
- C/C++- [Clojure](modules/clojure.md)- CoffeeScript- [Common Lisp](modules/common_lisp.md)- CSS- [Dart](modules/dart.md)- [Emacs Lisp](modules/emacs_lisp.md)- Erlang- Elixir- [F#](modules/fsharp.md)- Go- Haskell- JavaScript- LaTeX- [Lisp Base](modules/lisp.md) (common foundation for Lisp modules)- Lua- Markdown- [OCaml](modules/ocaml.md)- Org Mode- Perl- [Python](modules/python.md)- Racket- [Ruby](modules/ruby.md)- [Rust](modules/rust.md)- Scala- [Scheme](modules/scheme.md)- SCSS- TypeScript- HTML (via `web-mode`)- XML- YAML
On top of this - basic support for many other programming languageswill be auto-installed when needed (e.g. the first time you open asource file for some language).
## Philosophy
Prelude's philosophy is quite simple:
* simple* easy to understand and extend* stable* a foundation for you to build upon, as opposed to some end-user product
This means that it intentionally doesn't pack all the bells andwhistles that it could. Prelude aims to enhance the classic Emacsexperience without deviating a lot from it - e.g. it would neverenable something like `evil-mode` (vim keybindings) by default and soon.
All the third-party packages that it bundles are carefully vetted andare known to be of good quality and to have reliable maintainers. Thatgenerally means that Prelude's unlikely to immediately adopt someshiny new package, that has established tried and true alternatives.
In practice this translates to the following:
* Prelude is less opinionated than distros like Spacemacs and Doom Emacs (meaning it's closer to the standard Emacs experience)* Prelude installs relatively few additional packages by default* Most modules in Prelude are opt-in instead of opt-out (you'll notice the default config enables only a handful of modules)* Most modules (for example, modules for programming languages) are pretty short and feature setup only for essential packages (in some cases that would be just the major mode for the language in question)* You don't really need to track Prelude's upstream - you're encouraged to just fork it and use it as the basis for your own configuration.
Remember that the ultimate goal of every Emacs user is to create anEmacs setup that reflects their own experience, needs, goals andideas. Just like Lisp, Emacs is nothing but a raw building materialfor the perfect editing experience.
|