Skip to content

definfo/nixvim

Repository files navigation

NixVim

Prerequisites

Install Nix: The Package Manager.

Try the NixVim Config

Clone this repo and run the following command:

nix run .

LSPs

General:

LSP Description
ast-grep Fast and polyglot tool for code structural search, lint, rewriting at large scale.
asm-lsp LSP for assembly languages.
bashls LSP for Bash scripts.
markdown_oxide A Markdown language server in Rust.
tinymist A language server for the Typst language.

Plugins

This configuration uses a variety of plugins to enhance the Neovim experience. Here's a categorized list:

Completion

Plugin Description
blink-cmp Autocompletion plugin for Neovim.
LuaSnip Snippet engine for Neovim written in Lua.
friendly-snippets A set of preconfigured snippets for different programming languages.
lazydev.nvim Faster LuaLS setup for Neovim.

Coding Utilities

Plugin Description
Comment.nvim Smart commenting plugin that supports various comment styles.
comment-divider.nvim Plugin to create noticeable comment dividers.
neogen A plugin to generate annotations and docstrings.
nvim-autopairs Inserts and deletes matching pairs of brackets, quotes, etc.
todo-comments.nvim Highlights and lists TODO, FIXME, NOTE, etc. comments.
nvim-treesitter Treesitter configurations and abstraction layer.
trouble.nvim A pretty diagnostics, references, telescope results, quickfix and location list.
vim-suda Allows editing files with sudo privileges.

Editor Enhancements

Plugin Description
gitsigns.nvim Git integration: signs for added, changed, and removed lines.
lazygit.nvim Plugin for fugitive.vim to bring up lazygit in a floating terminal.
render-markdown.nvim Plugin to improve viewing Markdown files in Neovim.
neo-tree.nvim A file explorer tree.
nvim-ufo An ultra fold in Neovim.
toggleterm.nvim A Neovim plugin to persist and toggle multiple terminals during editing.

Core Infrastructure

Plugin Description
nvim-config-local Load local configuration files.
flash.nvim Enhanced jump motions for Neovim.
mini.nvim (bufremove) Part of the mini.nvim suite, provides buffer removal functionality.
telescope.nvim Highly extendable fuzzy finder over lists.
which-key.nvim Displays a popup with possible keybindings.

Visuals & UI

Plugin Description
bufferline.nvim A snazzy buffer line for Neovim.
dressing.nvim Improves the default vim.ui interfaces.
lualine.nvim A blazing fast and easy to configure Neovim statusline.
noice.nvim Replaces the UI for messages, cmdline and the popupmenu.
nvim-notify A notification manager for Neovim.
virt-column.nvim Displays a virtual column (e.g., for colorcolumn) without text shift.

Get started

NOTE: This project is pre-configured with nix-direnv, as well as Nixd support for VSCode.

Prerequisites: Make sure to also have direnv and nixd installed.

# Enable devshell
direnv allow

# Build nixvim under `./result`
nix build

# Run nixvim directly
nix run

# Install nixvim via `nix profile`
nix profile install

# You may also include this flake in system configuration
# e.g. inputs.nixvim.url = "github:definfo/nixvim";
# You may add
# inputs.nixvim.inputs.nixpkgs.follows = "nixpkgs";
# to reuse existing nixpkgs.
# However this may lead to incompatibilities.

# Run treefmt to format the project
nix fmt

# Run checks
nix flake check

# NOTE:
# pre-commit-hook automatically runs before `git commit`
# See details with
pre-commit --all-files --verbose

Optional steps for NixVim completion

This project provides pre-configured Nix completion for VSCode/Zed/Neovim.

Enjoy completion!

Contributing

Issues / PRs are welcomed :)

NOTE

The require('lspconfig') "framework" is deprecated, use vim.lsp.config (see :help lspconfig-nvim-0.11) instead. Feature will be removed in nvim-lspconfig v3.0.0

trace: evaluation warning: Nixvim (plugins.friendly-snippets): When using performance.combinePlugins.enable, plugins.friendly-snippets.enable and plugins.luasnip.enable, plugins.blink-cmp.enable: "friendly-snippets" has to be added to performance.combinePlugins.standalonePlugins in order to be picked up by the aforementioned plugins.

About

Neovim Distro Powered By Nix Flakes, originated from https://github.com/nix-community/nixvim

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •