- About this config
- Supported Languages
- Pre-install Requirements
- Installation
- Post Install
- Netrw - Getting Started
- Remaps & Shortcuts
- Moving lines Up & Down
- Highlight Replace
- Netrw Cheat Sheet
- Detailed Config and Tabnine Integration
- Tabnine Integration Separate Documentation
There are countless Neovim configurations out there. Throughout my Neovim config journey, one of the biggest frustrations has been the lack of strict or standardized architecture—and no universal templates to follow.
Yes, the high-level overview is consistent: Neovim looks for init.lua
in $XDG_CONFIG_HOME/nvim
,
and your Neovim environment spawns from there. However, from that point on, things can go in many different directions.
Understanding the code flow of other people's Neovim configurations often requires significant time and mental overhead—depending on their complexity.
Part of my goal in creating this configuration was not only to build something that works best for me, but also to provide comprehensive and detailed documentation.
This is something others can use and follow when creating their own config—similar in spirit to kickstart.nvim. Take what you like from mine; leave what you don’t.
It's my hope that by leaving detailed blueprints, it will be easy for anyone to leggo their own Neovim configuration environment.
For more on the architecture of this config, see the docs and illustration here:
Enjoy!
Make a backup of your config if you want
curl -LO https://raw.githubusercontent.com/LinuxUser255/nvim/refs/heads/main/install.sh && chmod +x install.sh && ./install.sh
- Python3
- Lua
- JavaScript/TypeScript
- HTML/CSS
- Rust
- Go
- C/C++
- Shell Scripting
- JSON/YAML
- Markdown
- Docker
- Solidity
- Vue/Svelte
- TOML
The install script will take care of most of the dependencies; however check your version of Neovim first.
nvim -v
- The repos tend to have older versions. But you can still try it.
- This config was built using Neovim version 11.2 - And built from source - latest stable version
- And built on Debian 12
- Using lazy.nvim for plugin management
- ripgrep is required for multiple telescope pickers.
- ShellCheck
- If you are having issues with Tree-Sitter, then you might not have node js installed. The two quick solution to try are:
sudo apt install tree-sitter-cli
if that doesn't work, then you may need to install Node.jssudo apt install nodejs npm
then Install Tree-sitter CLI globally with npm:sudo npm install -g tree-sitter-cli
- Verify the installation and restart NeoVim
tree-sitter --version
- This config comes configured with Tabnine Auto Completion
Neovim's configurations are located under the following paths, depending on your OS:
OS | PATH |
---|---|
Linux | $XDG_CONFIG_HOME/nvim , ~/.config/nvim |
MacOS | $XDG_CONFIG_HOME/nvim , ~/.config/nvim |
- The regular way
nvim
- The netrw way
nvim .
- Sync Lazy
nvim --headless "+Lazy! sync" +qa
For details see the netrw documentation
The spacebar is the leader key
Command | Description |
---|---|
leader pv |
Enter Project View |
leader ve |
Split windows vertically |
leader he |
Split windows horizontally |
Ctrl l |
Jumps to the Right window |
Ctrl h |
Jumps to the Left window |
Ctrl o |
Increase window width by 3 columns |
Ctrl y |
Decrease window width by 3 columns |
leader tt |
Open Telescope |
leader ff |
Find file using Telescope |
- Higlight the line,
Shift v
, then while holding down Shift, pressj
to go down - And
k
to move up. - This also works with muliple lines selected simultanuiously
Command | Description |
---|---|
Shift v Shift j |
Moves seclected line down |
Shift v Shift k |
Moves seclected line up |
Command | Description |
---|---|
Shift s |
Deletes the line and goes into insert mode. |
Support My Work :)