Handcrafted Neovim setup for the ultimate CLI dev experience.
Here's a video playlist that contains all the video I made related to nvim2k.
- Fully configured LSP: Out of the box LSP and completions, including Copilot (optional)
- Awesome keybindings: Intuitive and well documented keybindings with which-key
- Blazingly fast: Starts up in less than 30ms thanks to extensive lazy loading
- Batteries included: Has all the necessary plugins included out of the box
- Git in there: Powerful git integrations thanks to lazygit, fugitive, gitsigns and more
- Pretty colors: Comes with treesitter and onedark preconfigured with full transparency support
- Goto for notes: Comes with powerful note-taking capabilities, thanks to tdo
- Tmux integration: Works with your tmux configurations out of the box
- Dev tools: Comes with debugging, testing, database and REPL support, pick and choose
- Auto install: All necessary LSPs, Null LS sources, Treesitter Parsers etc. are auto installed
- User module: Configure nvim2k according to your needs by using the
user
module! - and some more
Most importantly:
Built for extending: nvim2k has a easy to understand config structure that promotes personalization, so go ahead, bring your keybindings, functions and plugins over, and truly make nvim2k: Your Personalized Development Environment!
Before you begin, ensure you have met the following requirements:
-
You have installed the latest version of
neovim
-
Python provider is necessary for some operations:
pip install neovim
-
Some command line tools: fd, ripgrep
-
To use nvim2k for notes, take a look at tdo.nvim
To install nvim2k
clone the repo and setup the symlink
git clone https://github.com/2kabhishek/nvim2k
On Linux and Mac
ln -sfnv $PWD/nvim2k $HOME/.config/nvim
On Windows Powershell
New-Item -ItemType SymbolicLink -Path "$env:LOCALAPPDATA\nvim" -Target "$PWD\nvim2k" -Force
Edit files in lua/core for tweaking options, and to add/remove functions and autocmds
To add new plugins add it to the plugins list
For plugin configs you can place them in these folders based on the functionality:
- lang: Plugins related to language features, completions, lsp, debugging etc.
- tools: General purpose tool plugins that aid in the editing experience.
- ui: Cosmetic plugins that make neovim pretty.
Find the keybinding manual here.
If you want to change functionality of a core keybinding, edit core/keys
To add new keybindings edit the which-key config
nvim2k
supports a user module where you can store your custom configs, these will always override the default configs, whenever there is a clash.
To use custom configs create the file lua/user/init.lua
, you can structure your configs as you like there.
lua/user/init.lua
must be present to load custom configs,require
any custom modules in this file.
user
module is not part of the repo, you can set up user
module as a separate git repository while continuously receiving nvim2k
updates.
By default nvim2k will auto install a set of LSP servers and null-ls sources using mason, if you want to disable it make sure to add the following to your user module.
-- lua/user/init.lua
local user = {
auto_install = true,
}
return user
To setup and access other user options you can use the get_user_config(key, default)
method in lib.util
Example: local auto_install = require('lib.util').get_user_value('auto_install', true)
I have been using vim/neovim for 7+ years now, I wanted to share my config for everyone to use
- Finding out the right plugins and configs!
- Setting up the initial config structure with lazy loading was tough.
- dots2k β Dev Environment
- nvim2k β Personalized Editor
- sway2k β Desktop Environment
- qute2k β Personalized Browser
- tdo.nvim β note taking system in neovim
- termim.nvim β enhanced neovim terminal
- nerdy.nvim β search nerdfont glyphs from inside neovim
- co-author.nvim β add co authors to your git commits
β hit the star button if you found this useful β
Source | Blog | Twitter | LinkedIn | More Links | Other Projects