A Neovim framework and doom emacs alternative for the stubborn martian hacker. Powered by fennel and the oxocarbon theme
Nyoom.nvim
These are your father's parentheses.
Elegant weapons for a more... civilized age.โ xkcd/297

Nyoom.nvim was an answer to abstracted and complex codebases that take away end-user extensibility, try to be a one-size-fits-all config, and needlessly lazy load everything. It solves this problem by providing a set of well integrated modules similar to doom-emacs. Modules contain curated plugins and configurations that work together to provide a unified look and feel across all of Nyoom. The end goal of nyoom.nvim is to be used as a framework config for users to extend and add upon, leading to a more unique editing experience.
Nyoom can be anything you'd like. Enable all the modules for the vscode-alternative in you, remove some and turn it into the prose editor of your dreams, or disable everything and have a nice set of macros to start your configuration from scratch!
At its core, Nyoom consists of a set of intuitive macros, a nice standard library, a set of modules, and some opinionated default options, and nothing more.
Designed against the mantras of doom-emacs doom-emacs:
- Gotta go fast. Startup and run-time performance are priorities.
- Close to metal. There's less between you and vanilla neovim by design. That's less to grok and less to work around when you tinker.
- Opinionated, but not stubborn. Nyoom (and Doom) are about reasonable defaults and curated opinions, but use as little or as much of it as you like.
- Your system, your rules. You know better. At least, Nyoom hopes so! There are no external dependencies (apart from rust), and never will be.
- Nix/Guix is a great idea! The Neovim ecosystem is temperamental. Things
It also aligns with many of Doom's features:
- Minimalistic good looks inspired by modern editors.
- A modular organizational structure for separating concerns in your config.
- A standard library designed to simplify your fennel bike shedding.
- A declarative package management and module system (inspired by
use-package, powered by Packer.nvim). Install packages from anywhere, and pin them to any commit. - A Space(vim)-esque keybinding scheme, centered around leader and localleader prefix keys (SPC and SPCm).
- Project search (and replace) utilities, powered by ripgrep, and telescope.
- Per-file indentation style detection and [editorconfig] integration. Let
- Support for modern tooling and navigation through language-servers, null-ls, and tree-sitter.
Prerequisites
- Neovim v0.8.1+
- Git
- Ripgrep 11.0+
Nyoom is comprised of optional modules, some of which may have additional dependencies. Run :checkhealth to check for what you may have missed.
Install
git clone --depth 1 https://github.com/nyoom-engineering/nyoom.nvim.git ~/.config/nvim
cd ~/.config/nvim/
bin/nyoom install
bin/nyoom sync
Then read getting started to be walked through installing, configuring and maintaining Nyoom Nvim.
It's a good idea to add ~/.config/nvim/bin to your PATH! Other bin/nyoom commands you should know about:
nyoom syncto synchronize your private config with Nyoom by installing missing
packages.fnl and modules.fnl
nyoom upgradeto update Nyoom to the latest releasenyoom lockto dump a snapshot of your currently installed packages to a lockfile file.
Getting help
Neovim is no journey of a mere thousand miles. You will run into problems and mysterious errors. When you do, here are some places you can look for help:
- Our Documentation covers many use cases.
- The builtin
:helpis your best friend - To search available keybinds:
<SPC>fk - Run
:check healthto detect common issues with your development
- Search Nyoom's issue tracker in case your issue was already
- Hop on our Discord server ; it's active and friendly!
Roadmap
(under construction)
Contribute
Checkout the Contributor Guide
- I love pull requests and bug reports!
- Don't hesitate to tell me my lisp-fu
- Don't see support for your language, or think it should be improved? Feel free to open an issue or PR with your changes.
Credits
- David Guevara For getting me into fennel, and for some of his beautiful macros. Without him Nyoom wouldn't exist!
- Oliver Caldwell For his excellent work on Aniseed, Conjure, and making fennel feel like a first class language in neovim