Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/2kabhishek/nvim2k
Your Personalized Dev Env ❤️👨💻
https://github.com/2kabhishek/nvim2k
config custom dotfiles ide lua neovim neovim-configuration neovim-dotfiles vim
Last synced: 7 days ago
JSON representation
Your Personalized Dev Env ❤️👨💻
- Host: GitHub
- URL: https://github.com/2kabhishek/nvim2k
- Owner: 2KAbhishek
- License: gpl-3.0
- Created: 2022-07-13T03:42:36.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-01T22:38:00.000Z (20 days ago)
- Last Synced: 2024-12-01T23:21:06.479Z (20 days ago)
- Topics: config, custom, dotfiles, ide, lua, neovim, neovim-configuration, neovim-dotfiles, vim
- Language: Lua
- Homepage:
- Size: 1.74 MB
- Stars: 133
- Watchers: 9
- Forks: 11
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Handcrafted Neovim setup for the ultimate CLI dev experience.
Here's a [YouTube playlist](https://www.youtube.com/watch?v=Pj7jJnOcW9I&list=PL52YFor3VtLdye3d4NiLHA7h4v5_kj5_C) that contains all the videos I made related to nvim2k.
## ✨ 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 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](https://github.com/2kabhishek/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 moreMost 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!**
## ⚡ Setup
### ⚙️ Requirements
Before you begin, ensure you have met the following requirements:
- You have installed the latest version of `neovim`
- Some command line tools: fd, ripgrep
- The Python provider is necessary for `wilder.nvim`.
- Install it using `pip install neovim`, and then run `:UpdateRemotePlugins` in Neovim.- To use nvim2k for notes, take a look at [tdo.nvim](https://github.com/2kabhishek/tdo.nvim)
### 💻 Installation
To install `nvim2k` clone the repo and setup the symlink
```bash
git clone https://github.com/2kabhishek/nvim2k
```On Linux and Mac
```bash
ln -sfnv $PWD/nvim2k $HOME/.config/nvim
```On Windows Powershell
```powershell
New-Item -ItemType SymbolicLink -Path "$env:LOCALAPPDATA\nvim" -Target "$PWD\nvim2k" -Force
```## 🚀 Usage
Edit files in [lua/core](./lua/core/) for tweaking [options](./lua/core/options.lua), and to add/remove [functions](./lua/core/functions.lua) and [autocmds](./lua/core/autocmd.lua)
### 📦 Plugins
To add new plugins add it to the [plugins list](./lua/plugins/list.lua)
For plugin configs you can place them in these folders based on the functionality:
- [lang](./lua/plugins/lang/): Plugins related to language features, completions, lsp, debugging etc.
- [tools](./lua/plugins/tools/): General purpose tool plugins that aid in the editing experience.
- [ui](./lua/plugins/ui/): Cosmetic plugins that make neovim pretty.### ⌨️ Keybindings
Find the [keybinding manual here](./docs/keybindings.md).
If you want to change functionality of a core keybinding, edit [core/keys](./lua/core/keys.lua)
To add new keybindings edit the [which-key config](./lua/plugins/tools/which-key.lua)
### 🎨 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.
> `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.
#### 🤖 Auto Install
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
-- 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)`
## 🧑💻 Behind The Code
### 🌈 Inspiration
I have been using vim/neovim for 7+ years now, I wanted to share my config for everyone to use
### 💡 Challenges/Learnings
- Finding out the right plugins and configs!
- Setting up the initial config structure with lazy loading was tough.### 🧰 Tools Used
- [dots2k](https://github.com/2kabhishek/dots2k) — Dev Environment
- [nvim2k](https://github.com/2kabhishek/nvim2k) — Personalized Editor
- [sway2k](https://github.com/2kabhishek/sway2k) — Desktop Environment
- [qute2k](https://github.com/2kabhishek/qute2k) — Personalized Browser### 🔍 More Info
- [tdo.nvim](https://github.com/2kabhishek/tdo.nvim) — note taking system in neovim
- [termim.nvim](https://github.com/2kabhishek/termim.nvim) — enhanced neovim terminal
- [nerdy.nvim](https://github.com/2kabhishek/nerdy.nvim) — search nerdfont glyphs from inside neovim
- [co-author.nvim](https://github.com/2kabhishek/co-author.nvim) — add co authors to your git commits
⭐ hit the star button if you found this useful ⭐
Source
| Blog
| More Links
| Other Projects