My personal Emacs configuration with contribution from friends.
Hopefully others might find this helpful. I don't believe in "starter-packs" such as oh-my-zsh, prelude or Spacemacs. I feel like the "one size fits all" approach leads to bloat and means that users are not familiar with either the tool or the options the package configured for them.
I mostly assembled bits and pieces over time as the need grew, but some sources served as inspiration and deserve explicit credit:
- Emacs 26.1 is required, older version will not work.
- For spell checking to work an ispell compatible program and dictionary need to be installed,
- By default
cmarkis used to markdown export/preview so it needs to be installed.
Users wishing to customize their configurations can use these files in
init.el- loaded before any code is run but after
config.el- loaded after configuration has finished
For example if one would like to change the theme and font they could do so by placing the following
(setq my/theme 'doom-solarized-light my/font-family "Consolas")
This directory can also be a git repository. For an example see https://github.com/drrlvn/.emacs.site.d.
Working with Python
It's highly recommended to develop Python projects in virtual environment. Once you have a virtual
C-c p E to define the variable
pyvenv-activate for the current project. Store
the path of the virtual environment inside this variable. Remember to quote that path with double
It's also recommended to install the Python Language Server inside your virtual environment, as well as Pylint if you're interested.
If you follow these steps then when visiting a Python file, the modeline should
indicate that the Python Language Server is running by showing
This configuration supports automatic Python formatting on save. Since there's no consensus about a Python formatting tool, or whether to use such at all, this feature is turned off and can be enabled on project basis.
These variables are local buffer and are nil by default. They can be set for a given project by
using dir-local variables, just like
C-c p E to set them.