Archived
71 lines
2.9 KiB
Markdown
71 lines
2.9 KiB
Markdown
# SimplyEmacs
|
|
|
|
> Vanilla Emacs at heart, with Evil scoped strictly to buffer editing and basic motion.
|
|
|
|
## Philosophy
|
|
|
|
SimplyEmacs is my personal, versioned Emacs setup — built up piece by piece and
|
|
treated like a project with tags and releases.
|
|
|
|
Simple idea: stick as close to vanilla Emacs as possible, but keep movement comfortable.
|
|
Evil handles normal modal editing inside regular text buffers, while in modes like
|
|
Dired or Magit it's stripped down to a paper-thin navigation layer (hjkl for moving
|
|
around) so all the native keybinds and features keep working as intended.
|
|
It gives you comfortable motion without burying how Emacs actually works.
|
|
|
|
## Layout
|
|
|
|
```
|
|
.
|
|
├── init.el # bootstrap, general UI, built-in settings, module loader
|
|
├── lisp/
|
|
│ ├── init-evil.el # evil-mode, ex commands, buffer-editing keybinds
|
|
│ ├── init-dired.el # evil-style navigation for dired
|
|
│ ├── init-completion.el # vertico, orderless, marginalia, corfu, consult, which-key
|
|
│ ├── init-project.el # project.el scoped to ~/Projects, with a sticky project pin
|
|
│ ├── init-build.el # simple build system around build.sh scripts
|
|
│ ├── init-dev.el # per-language tooling (Odin, Lua, TOML) + eglot
|
|
│ ├── init-git.el # version control with Magit
|
|
│ ├── init-theme.el # gruvbox-dark-hard + a few face tweaks
|
|
│ └── init-cheatsheet.el # in-Emacs keybinding reference (toggle with C-c /)
|
|
└── custom.el # auto-generated by M-x customize, gitignored
|
|
```
|
|
|
|
`init.el` is meant to stay readable as "what does bare Emacs look and feel
|
|
like" — general UI, backups/autosave, scrolling, removing confirmations, etc.
|
|
Everything else is one file per concern under `lisp/`, `require`d at the
|
|
bottom of `init.el`. Custom's auto-generated output is redirected to its
|
|
own `custom.el` (gitignored) so a stray `M-x customize` never shows up
|
|
as noise in a diff.
|
|
|
|
## Included
|
|
|
|
- **Completion** — vertico + vertico-posframe, orderless, marginalia, corfu, consult
|
|
- **Discovery** — which-key
|
|
- **Editing** — evil (buffer editing only)
|
|
- **Files** — dired, tuned with evil-style `hjkl` navigation
|
|
- **Dev tooling** — tree-sitter + odin-ts-mode + eglot (OLS) for Odin, plus lua-mode, toml-mode, and markdown-mode
|
|
- **Theme** — gruvbox-dark-hard, darkened background/fringe/line-numbers to `#111111`
|
|
|
|
## Install
|
|
|
|
```sh
|
|
git clone <this-repo> ~/.config/emacs
|
|
emacs
|
|
```
|
|
|
|
First launch will refresh package archives and install everything declared
|
|
via `use-package`.
|
|
|
|
## Adding a language
|
|
|
|
Add a new `;;;; <Language>` section to `lisp/init-dev.el` following the Odin
|
|
example (tree-sitter grammar source, mode package, eglot hook).
|
|
|
|
## Versioning
|
|
|
|
Tagged releases (`v1.0`, `v1.1`, ...) mark points where the config is in a
|
|
known-good, "I'd hand this to past-me" state.
|
|
Day-to-day tweaks happen over time and, once they've proven themselves,
|
|
eventually land in a version.
|