Lite Neovim Distro: A Blazing Fast, Lightweight Neovim Setup
Tags: beginners, vim, linux, bash
Published: 2024-02-24 00:44:13

## Table of Contents
- [Introduction](#introduction)
- [Motivation](#motivation)
- [Features](#features)
- [Usage](#usage)
- [Conclusions](#conclusions)
- [Social Links](#social-links)

## Introduction
Welcome to Lite Neovim Distro, a project tailored for those eager to dive into Neovim without any prior configuration knowledge, including my future self! 😄 This minimalist Neovim distribution offers a lightning-fast and lightweight setup right out of the gate.

What sets this project apart is its comprehensive guide. Whether you're interested in configuring Neovim yourself or simply want to jump right in, our guide covers all the prerequisites and installation steps to get you up and running with my customized Neovim configuration. [Don't hesitate to explore it!](https://github.com/stanleyogada/lite-neovim-distro.git)


## Motivation

As a Vim aficionado, I've always admired its efficiency. While it's perfect for basic tasks, I often resorted to VSCode for more complex projects. Seeking to streamline my workflow, I experimented with various setups, ultimately embracing Neovim with Lua scripting for its speed and flexibility.

Existing distributions like NVChad were bogged down with plugins, slowing performance. Hence, I crafted a custom configuration focused solely on essential plugins. With Packer and Lua, I optimized my setup for efficiency and speed.

Managing this setup across different systems posed challenges. To simplify, I meticulously documented prerequisites and streamlined installation to a single step. Now, setting up my Neovim environment is quick and consistent across systems.

Picture yourself on a server needing quick edits. With Lite Neovim Distro, you can swiftly establish a lightweight Neovim environment, boosting efficiency and productivity.


## Features

> Key Notes:
> - The `<leader>` is the space key.
> - This distro comes with only the [NodeJs Debugger](https://github.com/mxsdev/nvim-dap-vscode-js). I'm not a Debugger guy :)
> - I have configured only for the following; [Find Tweak the config from the Adapter's section](https://github.com/stanleyogada/lite-neovim-distro/blob/latest/lua/core/plugin_config/nvim-dap.lua)
>   - Javascript/Typescript: `Tested`
>   - Testing with Jest (Assumes you have Jest installed on your local project): `Tested`
>   - React Vite: `Tested`
>   - React NextJs: `Not-Tested`
> - _So if you need a debugger for any other programming language you will need to [configure it yourself](https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation)_


- **_PACKER_**: 
  - An easy-to-use plugin manager. ([**_Optional_** Read more about this plugin](https://github.com/wbthomason/packer.nvim))
- **_TELESCOPE_**: 
  - Fuzzy finding (`<leader>ff`), live grep (`<leader>fg`), etc. ([**_Optional_** Read more about this plugin](https://github.com/nvim-telescope/telescope.nvim))
- **_GITHUB-THEME_**: 
  - A beautiful GitHub theme pack (`:colorscheme github_dark`). ([**_Optional_** Read more about this plugin](https://github.com/projekt0n/github-nvim-theme))
- **_NVIM-TREE_**: 
  - A modern File tree (`<leader>n`), etc. ([**_Optional_** Read more about this plugin](https://github.com/nvim-tree/nvim-tree.lua))
- **_WEB-DEVICONS_**: 
  - Displays icons. ([**_Optional_** Read more about this plugin](https://github.com/nvim-tree/nvim-web-devicons))
- **_LUALINE_**: 
  - A beautiful status line. ([**_Optional_** Read more about this plugin](https://github.com/nvim-lualine/lualine.nvim))
- **_TREESITTER_**: 
  - Syntax highlighting, etc. ([**_Optional_** Read more about this plugin](https://github.com/nvim-treesitter/nvim-treesitter))
- **_GITSIGNS_**: 
  - Signs for added, removed, and changed lines, etc. ([**_Optional_** Read more about this plugin](https://github.com/lewis6991/gitsigns.nvim))
- **_BARBAR_**: 
  - A beautiful tabs manager (`<leader>bq` -> quit the current tab). ([**_Optional_** Read more about this plugin](https://github.com/romgrk/barbar.nvim))
- **_MININTRO_**: 
  - A beautiful "NEOVIM" intro when you type just `nvim` from the OS's terminal. ([**_Optional_** Read more about this plugin](https://github.com/eoh-bse/minintro.nvim))
- **_TELESCOPE-UNDO_**: 
  - A telescope extension for undo history (`<leader>fu`). ([**_Optional_** Read more about this plugin](https://github.com/debugloop/telescope-undo.nvim))
- **_OIL_**: 
  - A beautiful and fast file explorer (`-` -> Opens current/previous directory). ([**_Optional_** Read more about this plugin](https://github.com/stevearc/oil.nvim))
- **_NVTERM_**: 
  - A beautiful terminal emulator (`<leader>tv` -> Toggle vertical terminal). ([**_Optional_** Read more about this plugin](https://github.com/NvChad/nvterm))
- **_GITHUB-COPILOT_**: 
  - AI-powered code completion (`<TAB>` -> autocomplete the suggestion). ([**_Optional_** Read more about this plugin](https://github.com/github/copilot.vim))
- **_WHICH-KEY_**: 
  - A keybindings helper. ([**_Optional_** Read more about this plugin](https://github.com/folke/which-key.nvim))
- **_ZEN-MODE_**: 
  - A distraction-free writing (focus) mode. ([**_Optional_** Read more about this plugin](https://github.com/folke/zen-mode.nvim))
- **_TELESCOPE-TODO-COMMENTS_**: 
  - A telescope extension to manage all todo comments (`<leader>fc` -> list all todo comments). ([**_Optional_** Read more about this plugin](https://github.com/folke/todo-comments.nvim))
- **_AUTO-SESSION_**: 
  - Let Neovim remember your opened files (`<leader>fs` -> switch to previously saved sessions). ([**_Optional_** Read more about this plugin](https://github.com/rmagatti/auto-session))
- **_COMMENT_**: 
  - Toggle comments with ease (`gcc`). ([**_Optional_** Read more about this plugin](https://github.com/numToStr/Comment.nvim))
- **_SURROUND_**: 
  - Surround text with ease (`ysiw}` -> surrounds word with {}). ([**_Optional_** Read more about this plugin](https://github.com/kylechui/nvim-surround))
- **_VISUAL-MULTI_**: 
  - Work with Multiple cursors (`<C-n>`). ([**_Optional_** Read more about this plugin](https://github.com/mg979/vim-visual-multi))
- **_COC_**: 
  - A marketplace (`:CocInstall marketplace`) packed with extensions (`<leader>m`), like LSPs (`:CocInstall coc-tsserver`), linters (`:CocInstall coc-eslint`), etc. ([**_Optional_** Read more about this plugin](https://github.com/neoclide/coc.nvim))
- **_DAP_**: 
  - A debugger for Neovim (`<leader>dc` -> continue, `<leader>db` -> toggle breakpoint). ([**_Optional_** Read more about this plugin](https://github.com/mfussenegger/nvim-dap))
- **_NVIM-DAP-VSCODE-JS_**: 
  - A NodeJS Debug Adapter. ([**_Optional_** Read more about this plugin](https://github.com/mxsdev/nvim-dap-vscode-js))




## Usage
To use Lite Neovim Distro, follow these steps:

1. **Backup** or **Remove** your existing Neovim config (`~/.config/nvim`). If you don't have any existing Neovim configuration, you can skip this step.
   
2. **Install the config**:
     ```bash
     git clone https://github.com/stanleyogada/lite-neovim-distro.git ~/.config/nvim && nvim
     ```
 > **Note:** If you get an error, just Hit the ENTER KEY on your keyboard twice and Packer will fix the errors and set everything up for you. 
 > _If you're still getting any errors, you might be missing 1 or more requirements on your system, definitely [check out the docs for more info](https://github.com/stanleyogada/lite-neovim-distro/blob/main/README.md)_

3. **You're all set** 🚀 
     ```bash
     nvim
     ```

## Conclusions
Lite Neovim Distro provides a streamlined Neovim setup, prioritizing speed and efficiency. With its minimalist approach and essential plugins, you can enjoy a powerful editing experience without the bloat. Give it a try and elevate your text editing workflow!

## Social Links
[GitHub Profile](https://github.com/stanleyogada)
[LinkedIn Profile](https://www.linkedin.com/in/stanley-ogada)
[Project Repo](https://github.com/stanleyogada/lite-neovim-distro.git)