/nvim

Personal Neovim configuration

Primary LanguageLuaMIT LicenseMIT

Neovim Configuration

Neovim version Checks GitHub code size in bytes Top languages License
Linux MacOS Windows
• Uses Neovim nightly. No backward compatibility guaranteed! •

Introduction

Personal neovim configuration that uses Lazy and Mason for dependency management.

For more detailed plugin list, see file lua/plugins/init.lua

Installation

NOTE: Before installing, be sure to move or delete any existing config folders:

  • Unix: ~/.config/nvim
  • Windows: ~\AppData\Local\nvim

Ensure Neovim is properly installed using your preferred package manager and clone this repository to the specified location.

# Linux and MacOS
$ git clone https://github.com/daephx/nvim.git ~/.config/nvim

# Windows
$ git clone https://github.com/daephx/nvim.git ~\AppData\Roaming\nvim

After cloning this repository, run nvim. The lazy bootstrap process will clone and build all missing plugins, including treesitter parsers.

If there are any errors: run :checkhealth or restart nvim to ensure all packages are properly loaded. If that doesn't work, an issue or pull request would be greatly appreciated.

Fonts

For a better visual experience, install and configure your terminal to use patched font family from nerd-fonts.

Recommended: FiraCode

Compatibility (Optional)

For plugin compatibility with other languages, you should install the following packages.

Python client and plugin host: pynvim

pip install pynvim

Node client and plugin host: node-client

npm i -g neovim

Folder Structure

nvim/                 # Neovim config directory
├─ after/
│  └─ ftplugin/       # Filetype specific options
├─ lua/
│  ├─ core/           # Editor autocmds, keymaps, options
│  └─ plugins/        # Plugin config directory
│     ├─ cmp          # Code completion config
│     ├─ dap          # Debug adapter config
│     ├─ lsp          # Language server config
│     └─ init.lua     # Plugin specifications
├─ snippets/
│  ├─ package.json    # Snippets package manifest
│  ├─ all.json        # Global snippets file
│  └─ lua.json        # Filetype snippets file
└─ templates/         # Templates directory