Skip to content
Β 
Β 

Latest commit

Β 

History

722 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

License People Stars Forks Watches Last Updated

Your Personalized Development Environment β€οΈπŸ‘¨β€πŸ’»

nvim2k Demo
nvim2k screenshot

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/path as a env var video with more info

πŸ’» Installation

To install nvim2k simply clone the repo and setup symlinks

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

πŸš€ 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

🎨 User Configs

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.

user/init.lua must be present to load custom configs, any other custom modules should be loaded in this file directly.

Example user/init.lua

require('user.extra')

local opts = { noremap = true, silent = true }

vim.keymap.set('i', 'jk', '<Esc>', opts)

user module is excluded in the nvim2k gitignore, you can set up user module as a separate git repository while continuously receiving nvim2k updates.

πŸ§‘β€πŸ’» 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

About

Your Personalized Development Environment β€οΈπŸ‘¨β€πŸ’»

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages