This repository contains my custom Neovim configuration, leveraging LazyVim to provide a modern and efficient editing experience. The configuration is designed to be modular and allows for seamless plugin management. The setup uses an init.lua
that automatically adds any new plugin configurations present in the plugins
folder.
- Overview
- Features
- Requirements
- Installation
- Managing Neovim Versions
- Customization
- Usage
- Acknowledgements
This Neovim configuration aims to provide a powerful yet flexible editing experience with a variety of plugins and settings. It includes:
- Lazy-loaded Plugins: Leveraging LazyVim ensures that plugins are only loaded when needed, improving startup time and overall responsiveness.
- Automatic Loading: Automatically detects and loads plugin configurations placed in the
plugins
folder. - Designed to work seamlessly with the Alacritty terminal emulator.
- LazyVim Integration: This configuration uses LazyVim to manage plugins efficiently.
- Automatic Plugin Loading: Any
.lua
file placed in theplugins
directory will be automatically detected and loaded. - Modular Structure: Easily extend the setup by adding or modifying plugin configurations in the
plugins
folder. - Version Management: Uses bob to manage Neovim versions.
- Terminal Compatibility: Optimized for use with the Alacritty terminal emulator.
- Neovim: v0.8.0 or higher (managed via
bob
) - Alacritty: A lightweight terminal emulator (download here)
- Git: Ensure Git is installed to clone the repository and manage plugins.
-
Clone the Repository
git clone https://github.com/Grep-Juub/nvim-lua.git ~/.config/nvim
This will clone the configuration into the appropriate directory for Neovim.
-
Install Dependencies
- Ensure you have
git
andcurl
installed on your system. - Install
bob
, the Neovim version manager, as detailed below.
- Ensure you have
-
Run Neovim
Launch Neovim, and LazyVim will automatically handle the plugin installation for you:
nvim
On the first startup, it may take a little while as it installs and configures all the required plugins.
To manage your Neovim versions, I use bob
, which is a version manager specifically designed for Neovim.
-
Download and Install
curl -sL https://raw.githubusercontent.com/MordechaiHadad/bob/master/install | bash
-
Set up
bob
in your PATHEnsure that
bob
is added to your PATH by appending the following line to your shell configuration (.bashrc
or.zshrc
):export PATH="$HOME/.local/bin:$PATH"
-
Use
bob
to Install NeovimWith
bob
, you can install the latest version of Neovim:bob install latest
You can specify a specific version if needed:
bob install v0.9.0
You can also switch between versions using:
bob use v0.9.0
-
Create a new file in the
plugins
folder for each plugin you want to add. For example:~/.config/nvim/lua/plugins/myplugin.lua
-
Define the plugin and its configuration using Lua. The configuration uses a mechanism that scans and loads all
.lua
files from theplugins
directory using thecollect_plugins
function defined ininit.lua
.
You can customize the general settings by modifying the init.lua
file or any existing files in the plugins
directory.
-
Open Neovim with the configuration:
nvim
-
LazyVim will handle plugin management automatically. You can update all plugins using the command:
:Lazy sync
- LazyVim for providing an efficient plugin management system.
- bob for Neovim version management.
- Alacritty for being a great terminal emulator.
By following this guide, you should have a seamless and powerful Neovim setup that can be easily expanded and customized to suit your workflow. Enjoy coding with Neovim and LazyVim! 🎉