Skip to content

Eason0210/.emacs.d

Repository files navigation

My Emacs Configuration

https://github.com/Eason0210/.emacs.d/workflows/CI/badge.svg

This is my personal Emacs configuration, it works on macOS, Linux and Windows.

  • Use Borg to assimilate Emacs packages as Git submodules.
  • Use use-package to organize the config, optimize the startup time.

Supported Languages

Emacs itself comes with support for many programming languages. This config adds improved defaults and extended support for the following, listed in the approximate order of how much I use them, from most to least:

  • Haskell
  • C/C++
  • Python
  • Javascript / Typescript
  • HTML/Markdown
  • Rust

LSP support is provided using the built-in package Eglot.

Supported Emacs versions

Suggest to use Emacs 29 and higher version to get the full features.

Installation

To install, clone this repo to $HOME/.emacs.d, i.e. ensure that the init.el contained in this repo ends up at $HOME/.emacs.d/init.el:

cd ~/ && git clone https://github.com/Eason0210/.emacs.d.git
cd .emacs.d
make bootstrap-borg  # bootstrap borg itself
make bootstrap       # bootstrap collective or new drones

After make bootstrap, all the third-party packages will be automatically cloned as Git submodules , byte-compile and create autoloads.

See more details on Borg User Manual.

Updates

Update the config with git pull. Update the third-party packages by running:

cd ~/.emacs.d
git submodule update --init ./lib/<package-name> # Optionally
git submodule foreach git pull # Update each submodule to latest commit

make clean # remove all byte-code and native files
make build # byte-compile all drones and init files

make help # show brief help

About private configurations

I put my private configurations in $Home/.emacs.d/private.el, such as Email and variable-pitch font config, etc.

Reference configurations

  1. Purcell/emacs.d
  2. DamienCassou/emacs.d
  3. Font config is inspired by DogLooksGood/meomacs

About

My personal Emacs configuration

Resources

License

Stars

Watchers

Forks

Packages

No packages published