Skip to content

Repository files navigation

Neovim Config

Attention, the GitLab repo, https://gitlab.com/LinuxUser255/nvim, is the primary repository for this codebase. The GitHub repo is remote-tracking only. All changes are made on GitLab.

nvim-telescope-inaction-scaled.png

Table of Contents

About this config:

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:

Config-Structure.md

Enjoy!


Buy Me A Coffee
Support My Work :)


Installation

Choose whichever remote you prefer — GitHub or GitLab both host this config and stay in sync.

GitHub

Automated — builds Neovim from source and installs this config:

curl -LO https://raw.githubusercontent.com/LinuxUser255/nvim/refs/heads/main/install-fast-improved.sh && chmod +x install-fast-improved.sh && ./install-fast-improved.sh

Manual:

# remove your old neovim config and its files
rm -rf ~/.config/nvim ~/.local/share/nvim
# clone this repo
git clone https://github.com/LinuxUser255/nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim



GitLab

Automated — builds Neovim from source and installs this config:

curl -LO https://gitlab.com/LinuxUser255/nvim/-/raw/main/install-fast-improved.sh && chmod +x install-fast-improved.sh && ./install-fast-improved.sh

Manual:

# remove your old neovim config and its files
rm -rf ~/.config/nvim ~/.local/share/nvim
# clone this repo
git clone https://gitlab.com/LinuxUser255/nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim

Supported Languages.

If you do not have all of these langs installed, the config will still work, but throw errors

  • Python3
  • Lua
  • JavaScript/TypeScript
  • HTML/CSS
  • Rust
  • Go
  • C/C++
  • Shell Scripting
  • JSON/YAML
  • Markdown
  • Docker
  • Solidity
  • Vue/Svelte
  • TOML
  • LaTeX

• The install script will take care of most of the dependencies; however check your version of Neovim first.

 nvim -v

• Automated install.sh script, includes all dependencies in one go.

This works too:


- Change the color theme using the command:

:colorscheme use tab to select between tokyo night, (default) and catpuccin.


Dependencies


Neovim's configurations are located under the following paths, depending on your OS:

OSPATH
Linux$XDG_CONFIG_HOME/nvim, ~/.config/nvim
MacOS$XDG_CONFIG_HOME/nvim, ~/.config/nvim

Post Install

Open Neovim

  • The regular way
 nvim

 nvim .

 nvim --headless "+Lazy! sync" +qa

Netrw - Getting Started - How to use this config

For details see the netrw documentation


Remaps & Shortcuts:

The spacebar is the leader key

CommandDescription
leader pvEnter Project View
leader veSplit windows vertically
leader heSplit windows horizontally
Ctrl lJumps to the Right window
Ctrl hJumps to the Left window
Ctrl oIncrease window width by 3 columns
Ctrl yDecrease window width by 3 columns
leader ttOpen Telescope
leader ffFind file using Telescope

Moving lines Up & Down

  • Higlight the line, Shift v, then while holding down Shift, press j to go down
  • And k to move up.
  • This also works with muliple lines selected simultanuiously
CommandDescription
Shift v Shift jMoves seclected line down
Shift v Shift kMoves seclected line up

Highlight Replace

CommandDescription
Shift sDeletes the line and goes into insert mode.

Presentations in Neovim

This config includes present.nvim for creating presentations in markdown.

CommandDescription
leader psStart presentation mode
nNext slide (in presentation)
pPrevious slide (in presentation)
qQuit presentation

Creating Presentations:

  • Write slides in markdown
  • Use <!-- stop --> to split slides
  • Code blocks can be executed during presentation
  • Comments with %% won't be shown

See the cheat sheet below, for more usage info


About

Updated, refactored, better version of my previous neovim config. Debian, Arch and MacOS support. Notable features & plugins: Telescope, Harpoon,Tabnine, Lazy, VimBeGood, Bright-flash text yank to system clipboard, and much, much more.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages