You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
alexandre fc0cf4d36b Update 'default.nix' 9 months ago
screenshots Add README 2 years ago
README.md Update names 2 years ago
default.nix Update 'default.nix' 9 months ago
init.lua FIX : watch_index deprecated use watch_git 9 months ago
plugins.nix Bump plugins 1 year ago

README.md

Gaëlle’s Neovim configuration for Nix

This repository contains my configuration for the Neovim text editor, ready to be applied on a NixOS system or any POSIX system with the Nix package manager. It uses Home-manager to apply the configuration to any user.

It technically depends on Neovim 0.5 (which isn’t released at the time of the writing), and it will pull the nightly version of Neovim. While Nix can support multiple installed versions of a program, the nvim command present in $PATH will probably be overridden by the nightly version. When Neovim 0.5 will be ready at least in nixos-unstable, I’ll change this repo to use this version instead.

Contents

This setup suits my personal needs with Neovim, which are: development, mostly with Python and Rust, script editing, and document writing (mails, various markdown files…). It contains the following main plugins:

  • solarized-dark theme (can be easily changed, but for now some colors are hardcoded)
  • lspconfig: language server support, using the built-in LSP from Neovim 0.5, configured with Rust, Python, Bash, HTML, CSS, Javascript, and Lua.
  • nvim-bufferline: buffers appearing as graphical tabs
  • vim-web-devicons
  • gitsigns: for git info column and commands
  • galaxyline: maybe the quickest statusbar plugin, configured with Powerline separators
  • vim-vsnip and friendly-snippets: not yet configured
  • telescope and telescope-symbols: universal fuzzy finder
  • truezen: a clean and focus-friendly writing mode
  • tree-nvim: a file explorer sidebar, with colored icons, git and LSP status
  • minimap: a nice code minimap with current section highlighted

Screenshots

Editing a Rust file Completion popup

Usage

You need a working Nix or NixOS, and Home-Manager environment.

You can either activate this config in the global configuration.nix file (and define per-user home-manager config) or in home.nix in your home directory.

For configuration.nix:

{ lib, config, pkgs, ... }:
let
  # […]
  nix-nvim = builtins.fetchGit {
    url = "https://framagit.org/vegaelle/nix-nvim.git";
    ref = "master";
  };
in
{
  imports = [
    # your existing imports
    <home-manager/nixos>
  ];
  home-manager.users.your_user = import "${nix-nvim}";
}

Then run nixos-rebuild switch, and rehash if your current shell is zsh.

For home.nix:

{ lib, config, pkgs, ... }:
let
  # […]
  nix-nvim = builtins.fetchGit {
    url = "https://framagit.org/vegaelle/nix-nvim.git";
    ref = "master";
  };
in
{
  imports = [ (import "${nix-nvim}") ];
}

Then run home-manager switch. There is no need for rehash even with zsh.