/neovim-config

My personal neovim configuration

Primary LanguageLuaMIT LicenseMIT

Neovim Config

This is my personal neovim configuration, written completely in Lua. It uses a lazy plugin manager to ensure fast startup times, even with a large number of plugins installed.

Preview

preview1

preview2

preview3

preview4

Plugins

  • lazy: A plugin manager that loads plugins lazily to ensure fast startup times.

  • copilot: Enables support for OpenAI's Copilot.

  • nvim-cmp: Provides autocomplete functionality using nvim-cmp, a lightweight completion plugin.

  • nvim-lspconfig: Implements Language Server Protocol (LSP) support using nvim-lspconfig, a simple interface for configuring language servers.

  • null-ls: Enables automatic formatting with null-ls, a plugin that allows using external formatters as Neovim plugins.

  • mason: Automatically installs LSP servers, formatters, linters, and debug adapters using Mason, a Neovim plugin manager.

  • nvim-tree: Includes a file explorer using nvim-tree, a fast and lightweight file explorer plugin.

  • gitsigns, git-conflict: Integrates Git functionality with gitsigns and git-conflict plugins for a seamless Git experience.

  • telescope: Provides a file finder using telescope, a fuzzy finder plugin for files, buffers, and more.

  • bufferline: Manages buffers with bufferline, a simple and configurable interface for buffer management.

  • lualine: Displays a statusline using lualine, a fast and lightweight statusline plugin with customizable options.

  • toggleterm: Includes a terminal using toggleterm, a plugin for managing terminals within Neovim.

  • nvim-ufo: Supports folding functionality with nvim-ufo, a lightweight folding plugin.

  • comment: Includes a plugin for easily generating comments.

  • treesitter, autopairs, nvim-ts-autotag, rainbow-delimiters Provides syntax highlighting using Treesitter, Autopairs, Nvim-ts-autotag, and Ts-rainbow plugins.

  • dap, dapui: Offers debugging capabilities with dap and dapui plugins.

  • buffer-closer: Automatically closes unused buffers using buffer-closer, a plugin for managing buffers.

  • ccc: Includes a color picker using ccc, a fast and lightweight color picker plugin

  • focus: Automatically resizes windows based on focus using a dedicated plugin.

  • url-open: Opens URLs in the default browser using url-open, and highlights URLs in the buffer.

  • stcursorword: Minimal and fast cursor word highlighting.

  • And more... dependencies are listed in the plugins/init.lua file.

Requirements

  • xclip (for clipboard support)
  • fd (for telescope)
  • ripgrep (for telescope)
  • Nerdfonts (for icons) (I use Hack Nerd Font)
  • Neovim 0.5 or higher

Arch Linux:

sudo pacman -S xclip fd ripgrep
yay -S ttf-hack-nerd

Installation

Clone this repository into your Neovim configuration directory.

Linux and MacOS:

[ -d ~/.config/nvim ] && mv ~/.config/nvim ~/.config/nvim.bak ; git clone https://github.com/sontungexpt/neovim-config.git ~/.config/nvim --depth 1

Windows (git bash)

[ -d %USERPROFILE%/Local/nvim ] && mv %USERPROFILE%\AppData\Local\nvim %USERPROFILE%\AppData\Local\nvim.bak ; git clone https://github.com/sontungexpt/neovim-config.git %USERPROFILE%\AppData\Local\nvim --depth 1

You will also need to install the plugins. This configuration uses the lazy.nvim plugin manager to manage plugins. You can install the plugins by opening Neovim and running :Lazy sync

Install providers:

npm install -g neovim

gem install neovim

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install neovim
:Lazy sync

Inspiration

Configuration

This configuration is highly customizable and easy to configure. You can customize the configuration by modifying the init.lua file.

Contributions

If you find any issues with this configuration or would like to contribute, please feel free to submit a pull request or open an issue.

License

This configuration is licensed under the MIT license - see the LICENSE file for details.