Handcrafted Neovim setup for the ultimate CLI dev experience.
Here's a YouTube playlist that contains all the videos I made related to nvim2k.
- Fully configured LSP: Out of the box LSP and completions
- 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
- Auto install: All necessary LSPs, Treesitter Parsers etc. are auto installed
- Homegrown components: Employs a custom lightweight plugin suite for navigation, autopairing, autotiling, terminal splits, code running, and color highlighting via homegrown.nvim
- User module: Configure nvim2k according to your needs by using the
usermodule! - 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 - Some command line tools: fd, ripgrep
- To use nvim2k for notes, take a look at tdo.nvim
git clone https://github.com/2kabhishek/nvim2k
cd nvim2k
./setup.shClone the repo:
git clone https://github.com/2kabhishek/nvim2kOn Linux and macOS:
ln -sfnv "$PWD/nvim2k" "$HOME/.config/nvim"On Windows PowerShell:
New-Item -ItemType SymbolicLink -Path "$env:LOCALAPPDATA\nvim" -Target "$PWD\nvim2k" -Forcenvim2k supports a user module where you can store your custom configs and override any default configs.
To use custom configs create the file lua/user/init.lua in nvim2k, with the following structure:
-- lua/user/init.lua
local user = {
auto_install = true, -- enable auto install of LSPs, Treesitter parsers etc.
user_lsp_servers = {
-- Auto installed LSPs defined by user
},
user_treesitter_parsers = {
-- Auto installed Treesitter parsers defined by user
},
user_plugins = {
-- Add your lazy plugin spec here
},
user_keybindings = {
-- Add your which-key bindings here
}
}
return userYou can add and require any other custom modules and configurations you want in this file.
user module is not part of the repo, you can set up user module as a separate git repository while continuing to receive nvim2k updates.
Files in lua/core control the core of neovim:
Apart from core/keys most keybindings are configured using which-key
You can check out the plugins list file file to see the plugins that are included in nvim2k.
- lang: Plugins related to language features, completions, lsp, editing etc.
- tools: Plugins that add tool integrations to the editor.
- ui: Plugins that make improve Neovim user experience.
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
- homegrown.nvim β lightweight replacements for standard plugins (pairs, terminal, runner, tiling, etc.)
- tdo.nvim β note taking system in neovim
- termim.nvim β enhanced neovim terminal (succeeded by homegrown.nvim's terminal module)
- nerdy.nvim β search nerdfont glyphs from inside neovim
- co-author.nvim β add co authors to your git commits
- octohub.nvim β manage and explore github repositories from inside neovim
- pickme.nvim β interactive picker interface for fuzzy search plugins
- utils.nvim β helper functions for 2kabhishek's neovim ecosystem
β hit the star button if you found this useful β
Source | Blog | Twitter | LinkedIn | More Links | Other Projects
