Handcrafted neovim configs for the ultimate CLI dev experience, completely in lua
Here's a (slightly dated) video walkthrough
β¨ Features
- 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 50ms 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 telekasten
- Tmux integration: Just works, with your tmux configurations out of the box
- Dev tools: Comes with debugging, testing, database and REPL support, pick and choose
- and many more!
But most importantly::
Easy extensibility: nvim2k has a simple and scalable config structure that promotes personalization, so go ahead, bring your keybindings, configs and plugins over, and truly make nvim2k: Your Personalized Development Environment!
β‘ Setup
βοΈ Requirements
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, make sure to add
export NOTES_DIR=your/notes/pathas a env var video with more info
π» Installation
To install nvim2k simply clone the repo and setup symlinks
git clone https://github.com/2kabhishek/nvim2kOn Linux and Mac
ln -sfnv $PWD/nvim2k $HOME/.config/nvimOn Windows Powershell
New-Item -ItemType SymbolicLink -Path "$env:LOCALAPPDATA\nvim" -Target "$PWD\nvim2k" -Forceπ Usage
Edit files in lua/core for tweaking options, and to add/remove functions and autocmds
π¦ Plugins
To add new plugins simply 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, things that make neovim pretty.
β¨οΈ Keybindings
If you want to change functionality of a core keybinding, edit core/keymaps
To add new keybindings visit the which-key config
π§βπ» Behind The Code
π Inspiration
I have been using vim/neovim for 6+ years now, wanted to create a fun and easily extensible neovim config for everyone to use
π‘ Challenges/Learnings
- Finding out just the right plugins and configs!
- Setting up the initial config structure with lazy loading was tough.
π§° Tools Used
- dots2k β Dev Environment
- nvim2k β Personalized Editor
- sway2k β Desktop Environment
- qute2k β Personalized Browser
π More Info
- nerdy.nvim β search nerdfont glyphs from inside neovim
- co-author.nvim β easily add co authors to your git commits
β hit the star button if you found this useful β
Source | Blog | Twitter | LinkedIn | More Links | Other Projects
