Mr-Ples / simple-easy-emacs

A modern, simple emacs config for getting started

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

I wanted a config that I can give to a anyone and they just have an Emacs running with Clojure setup.

Usage

As your main Emacs config

If you do not have an Emacs config yet and you want to start out with simple-easy-emacs :

cd
git clone https://github.com/benjamin-asdf/simple-easy-emacs.git .emacs.d

windows (vista and higher)

first intall emacs. Here is a guide

cd
cd AppData/Roaming/
git clone https://github.com/benjamin-asdf/simple-easy-emacs.git .emacs.d

run Emacs!

Just run it without changing your real config

git clone https://github.com/benjamin-asdf/simple-easy-emacs.git
cd simple-easy-emacs
./run.sh

get started

First time takes a bit and are some (comp) warnings, this is fine.

After Emacs startup up, use `M-x` (that is alt + x) type simple ~. Find ~simple-easy-clojure-hello and Ret to run the command.

After a bit a cider repl buffer should pop up. If you lost where you are type C-x b to get a list of current buffers Now checkout the file hello.clj. Here are your spaceships controls:

cider-eval-defun-at-point C-M-x (that is ctr + alt + x) cider-eval-last-sexp C-x C-e cider-load-file C-c C-l

Use C-M-i completion-in-region to completion candidates.

Useful commands

  1. The default Emacs editing and movement commands I searched Emacs cheat sheet and this popped up: https://www.shortcutfoo.com/app/dojos/emacs/cheatsheet
  2. more commands (find them with M-x)

consult-buffer window-left window-right etc describe-key describe-variable describe-function describe-mode describe-keymap

Evil

see doc/evil.org

Further packages to checkout:

You can find those on github, check their readme:

  • marginalia (prettier completion candidates)
  • magit
  • evil + evil collection (you don’t need doom to get vim binds)
  • flycheck, flycheck-clj-kondo (get clj-kondo aswell)
  • embark
  • winner
  • link-hint
  • corfu or company for completion popups

take config inspiration from mememacs:

https://github.com/benjamin-asdf/dotfiles/tree/master/mememacs/.emacs-mememacs.d

Principles

stick to defaults

  • no evil
  • builtin theme
  • no projectile.el
  • Yet, I do hesitate to configure builtins like show-paren-mode to give a more modern and minimal look and feel

keep the amount of packages low

  • preferably a newcomer could look at the config and not get lost

novice friendly where feasible

  • works on windows
  • disable lock files
  • no evil by default
  • disable byte compile warnings (TODO)

not a framework

I see users of config frameworks learning the way of the config framework. Maybe that is fine but I have some hunch that the default emacs way makes you more intimate with the program and lisp, and this where the real power of emacs lies.

Use-package + straight.el

  • commonly used
  • Readmes commonly have a use-package snippet
  • I like how straight.el brings github repos as first class citizens sort of.

use vertico + orderless + consult

Simple, focused and powerful. These are virtually synonymous with “modern emacs config”.

simple mode line

I am not sure if a big mode line with vsc element might be slow on windows. I still desire a modern and minimalist style, hence https://github.com/jessiehildebrandt/mood-line (my fork https://github.com/benjamin-asdf/mood-line)

Acknowledgments

The title is both a play both on the seminal talk Simple Made Easy by Rich Hickey, that has strong influence on the philosophy of clojure in practice. And a salute towards a recent talk by Daniel Higginbotham & Arne Brasseur.

Thanks to David Wilson for https://github.com/daviwil/emacs-from-scratch. Thanks also to Gavin https://github.com/Gavinok/emacs.d for inspiration.

Similar Projects

You might start any of these up and feel it brimming your mind like a spaceship.

frameworks

https://github.com/doomemacs/doomemacs certainly a force to be reckoned with

other

here is an older one

About

A modern, simple emacs config for getting started


Languages

Language:Emacs Lisp 99.1%Language:Shell 0.9%