diff --git a/README.md b/README.md index 4cdfd98..d5e6dd3 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,15 @@ # Neovim Configuration Flake This is the Neovim configuration for all my NixOS and Nix enabled systems (such as with nix-darwin on macOS). -It aims to be minimal and utilitarian; it forgoes blingful features like status lines, sidebars, or fancy UI enhancements +It aims to be minimal and utilitarian; it forgoes many blingful features like status lines, sidebars, or fancy UI enhancements in favor of native (neo)Vim, while still having everything useful you'd expect, like LSPs, file explorer (`yazi`), completions, advanced language tools, and QoL enhancements. It uses the [Nixvim](https://nix-community.github.io/nixvim/) project under the hood to declaratively configure Neovim and its plugins, and installs some LSPs and other tools needed by it (like `yazi`, `fd`, etc). -It simply outputs a package, called `nvim`. It can be called just like the regular `nvim` package, except it bundles -all of my custom configuration and their dependencies with the power of Nix. - -You can try it, remotely, in one line: -```sh -nix run 'github:youwen5/neovim-flake' -``` +It simply outputs a package which provides the binary `nvim`. It can be called just like the regular `nvim` binary, except it bundles +all of my custom configuration and their dependencies with the power of Nix. An entirely self-contained, reproducible, purely functional text editor. Amazing. Feel free to fork or copy the config to use yourself. It's free in the [public domain](./LICENSE). @@ -23,7 +18,13 @@ build a Nixvim configuration as a standalone Nix package. ## Usage -Add it to your flake inputs, and import `homeManagerModules.default` as a home-manager module: +You can test drive my config in just one line: +```sh +nix run 'github:youwen5/neovim-flake' +``` + +If for some reason, you want to install it permanently, add it to your flake inputs, +and install the package in the usual way: ```nix # flake.nix @@ -32,10 +33,8 @@ Add it to your flake inputs, and import `homeManagerModules.default` as a home-m inputs = { # -- snip -- - neovim-config = { - url = "github:youwen5/neovim-flake"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + custom-neovim.url = "github:youwen5/neovim-flake"; + }; # -- snip -- }; # -- snip -- @@ -43,13 +42,19 @@ Add it to your flake inputs, and import `homeManagerModules.default` as a home-m ``` ```nix -# Wherever you're setting up your home-manager modules: +# Wherever you install packages for your system or user: -home-manager.users. = { - imports = [ - # -- snip -- - inputs.neovim-config.homeManagerModules.default - # -- snip -- +{inputs, system, ...}: +{ + environment.systemPackages = [ + inputs.custom-neovim.packages.${system}.default + # supported systems: x86_64-linux, aarch64-linux, x86_64-darwin, aarch64-darwin ]; -}; +} ``` + +> ![WARNING] +> This package will add the symlinks `vim -> nvim` and `vi -> nvim` so it will conflict with +> `pkgs.vim` and any programs installing binaries called `vim` or `vi`. You must remove existing +> Neovim and Vim packages to install this. +