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.

114 lines
4.3 KiB

  1. # Emacs Prelude
  2. Prelude is an Emacs distribution that aims to enhance the default
  3. Emacs experience. Prelude alters a lot of the default settings,
  4. bundles a plethora of additional packages and adds its own core
  5. library to the mix. The final product offers an easy to use Emacs
  6. configuration for Emacs newcomers and lots of additional power for
  7. Emacs power users.
  8. !!! Important
  9. Prelude is compatible **ONLY with GNU Emacs 25.1+**. In general you're
  10. advised to always run Prelude with the latest stable Emacs release.
  11. You can support the development of Prelude via
  12. [GitHub Sponsors](https://github.com/sponsors/bbatsov),
  13. [ko-fi](https://www.ko-fi.com/bbatsov),
  14. [PayPal](https://www.paypal.me/bbatsov) and
  15. [Patreon](https://www.patreon.com/bbatsov).
  16. ## Features
  17. * Improved UX, that's still in line with Emacs traditions
  18. * Sane defaults of baseline Emacs functionality
  19. * Automatic installation of many major programming modes on demand
  20. * A curated set of 3rd party packages to enhance the base functionality
  21. * Simple modular architecture
  22. * Easy customization
  23. ## Package Highlights
  24. Here are some of the essential 3rd party packages that Prelude adds to Emacs:
  25. * ace-window (effective navigation between multiple windows)
  26. * avy (effective navigation)
  27. * crux (lots of useful editing commands)
  28. * diff-hl (shows colorful diff markers in the gutter when you're editing files under version control)
  29. * easy-kill
  30. * expand-region
  31. * flycheck (modern integration with many lint tools)
  32. * guru-mode (an Emacs guru that helps you learn basic Emacs keybindings)
  33. * projectile (powerful project navigation/interaction package)
  34. * magit (the best git client in the known universe)
  35. * nlinum (line numbers in your buffers)
  36. * smartparens (powerful package for dealing with expressions and matched delimiters in programming languages)
  37. * super-save (auto-save buffers when moving around)
  38. * which-key (shows you possible keybindings when you type a partial keybinding)
  39. * zenburn-theme (Prelude's default color theme)
  40. On top of this Prelude bundles a bunch of smaller packages and makes many more packages available via optional modules.
  41. ## Programming Languages Support
  42. The following programming languages have enhanced support in Prelude:
  43. - C/C++
  44. - Clojure
  45. - CoffeeScript
  46. - Common Lisp
  47. - CSS
  48. - [Dart](modules/dart.md)
  49. - Emacs Lisp
  50. - Erlang
  51. - Elixir
  52. - Go
  53. - Haskell
  54. - JavaScript
  55. - LaTeX
  56. - Lisp Base (common foundation for Lisp modules)
  57. - Markdown
  58. - OCaml
  59. - Org Mode
  60. - Perl
  61. - [Python](modules/python.md)
  62. - Ruby
  63. - Rust
  64. - Scala
  65. - Scheme
  66. - SCSS
  67. - Shell
  68. - TypeScript
  69. - Web
  70. - XML
  71. - YAML
  72. On top of this - basic support for many other programming languages will be auto-installed when needed (e.g. the first time you open a source file for some language).
  73. ## Philosophy
  74. Prelude's philosophy is quite simple:
  75. * simple
  76. * easy to understand and extend
  77. * stable
  78. * a foundation for you to build upon, as opposed to some end-user product
  79. This means that it intentionally doesn't pack all the bells and whistles that it could.
  80. Prelude aims to enhance the classic Emacs experience without deviating a lot from it - e.g.
  81. it would never enable something like `evil-mode` (vim keybindings) by default and so on.
  82. All the third-party packages that it bundles are carefully vetted and are known to be of
  83. good quality and to have reliable maintainers. That generally means that Prelude's unlikely
  84. to immediate adopt some shiny new package, that has established tried and true alternatives.
  85. In practice this translates to the following:
  86. * Prelude is less opinionated than distros like Spacemacs and Doom Emacs (meaning it's closer to the standard Emacs experience)
  87. * Prelude installs relatively few additional packages by default
  88. * Most modules in Prelude are opt-in instead of opt-out (you'll notice the default config enables only a handful of modules)
  89. * Most modules (e.g. modules for programming languages) are pretty short and feature setup only for essential packages (in some cases that be just the major mode for the language in question)
  90. * 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.
  91. Remember that the ultimate goal of every Emacs user is to create an Emacs setup that reflects their own experience, needs, goals and ideas. Just like Lisp,
  92. Emacs is nothing but a raw building material for the perfect editing experience.