An open API service indexing awesome lists of open source software.

https://github.com/caincarmo/kin.nvim

πŸ’» - Neovim Config
https://github.com/caincarmo/kin.nvim

neovim neovim-configuration neovim-lua

Last synced: 3 months ago
JSON representation

πŸ’» - Neovim Config

Awesome Lists containing this project

README

        

[//]: Header

🍑 Kin.nvim


Showcase
β€’
Requirements
β€’
Installation
β€’
Knvim File
β€’
File Structure
β€’
Credits



Last commit
License
Stars
Issues
Repo Size


Kin.nvim is a powerful [Neovim](https://neovim.io/) configuration, designed to deliver an efficient and optimized experience across any language. It offers the flexibility to be customized for specific languages, adapting to your workflow and maximizing your productivity.

[//]: Content

## πŸ† Showcase

![Knvim Dashboard][ft_dashboard]
![Knvim File][ft_file]
![Knvim Autocomplete][ft_cmp]
![Knvim Keybinds][ft_keybinds]
![Knvim Telescope (fzf)][ft_telescope]
![Knvim Filetree][ft_filetree]

## 🚧 Requirements

### Prerequisites

Ensure you have the following installed on your system:

- **Git**: [Download](https://git-scm.com/downloads)
- **Neovim 0.9.5+**: [Installation Guide](https://github.com/neovim/neovim/blob/master/INSTALL.md)
- **Clipboard Tool**: Required for system clipboard integration. See [Clipboard Tool](https://neovim.io/doc/user/provider.html#clipboard-tool) for supported solutions.

### Package Managers

You will need one of the following package managers:

- **pip**: [Installation Guide](https://pypi.org/project/pip/)
- **npm**: [Installation Guide](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
- **cargo**: [Installation Guide](https://doc.rust-lang.org/cargo/getting-started/installation.html)

### Additional Tools

Make sure to have these tools installed:

- **fzf**: [Download](https://github.com/junegunn/fzf)
- **ripgrep**: [Download](https://github.com/BurntSushi/ripgrep)
- **make**: Install via package manager
- **Ubuntu/Debian**: `sudo apt-get install build-essential`
- **Fedora**: `sudo dnf groupinstall 'Development Tools'`
- **Arch Linux(btw)**: `sudo pacman -S base-devel`
- **MacOS**: `xcode-select --install`
- **Windows**: `scoop install make`

> [!IMPORTANT]
> For Windows users, it is necessary to use Powershell 7 or higher

## πŸ› οΈ Installation

> [!NOTE]
> There are two ways to install Kin.nvim: manually or using a script.

### Manual

Unix

1. Make a backup of your current nvim and shared folder

```sh
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
```

2. Setup Kin.nvim

```sh
git clone --depth 1 https://github.com/CainCarmo/Kin.nvim.git ~/.config/nvim
rm -rf ~/.config/nvim/.git
rm -rf ~/.config/nvim/.gitignore
nvim
```

Windows

1. Make a backup of your current nvim and nvim-data folder

```pwsh
Rename-Item -Path $env:LOCALAPPDATA\nvim -NewName $env:LOCALAPPDATA\nvim.bak
Rename-Item -Path $env:LOCALAPPDATA\nvim-data -NewName $env:LOCALAPPDATA\nvim-data.bak
```

2. Setup Kin.nvim

```pwsh
git clone --depth 1 https://github.com/CainCarmo/Kin.nvim.git $env:LOCALAPPDATA\nvim
Remove-Item $env:LOCALAPPDATA\nvim\.git -Recurse -Force
Remove-Item $env:LOCALAPPDATA\nvim\.gitignore -Recurse -Force
nvim
```

### Script

You can also use the provided installation scripts for a more automated setup:

- For Unix-based systems, run the following command in your terminal:

```sh
bash <(curl -s https://raw.githubusercontent.com/CainCarmo/Kin.nvim/main/utils/scripts/installer.sh)
```

- For Windows systems, run the following command in PowerShell:

```pwsh
pwsh -c "iwr https://raw.githubusercontent.com/CainCarmo/Kin.nvim/main/utils/scripts/install.ps1 -UseBasicParsing | iex"
```

## πŸ“œ Knvim File

The `knvim.lua` file is the main configuration file for `Kin.nvim`. It is responsible for setting global Neovim options, configuring plugins, and defining themes and other visual elements. Below is a detailed description of how to use and configure this file.

> [!TIP]
> The `knvim.lua` file is located in the `lua/user/knvim.lua` directory. It is automatically loaded by Neovim during startup.

| Option | Default | Description |
| ------------------------------------- | ----------------------- | ----------------------------------------------------- |
| `knvim.startup.header` | `ascii.headers.default` | Defines the ASCII header displayed at Neovim startup. |
| `knvim.startup.footer` | `""` | Defines the ASCII footer displayed at Neovim startup. |
| `knvim.theme.colorscheme` | `"gruvbox"` | Sets the default color scheme for Neovim. |
| `knvim.langs.lsp.names` | `{}` | List of LSP servers to be configured. |
| `knvim.langs.lsp.tools` | `{}` | Additional tools for LSP support. |
| `knvim.langs.linter.names` | `{}` | List of linters to be configured. |
| `knvim.langs.formatter.names` | `{}` | List of formatters to be configured. |
| `knvim.langs.treesitter.names` | `{}` | Languages supported by Treesitter. |
| `knvim.langs.debugger.adapters` | `{}` | Debug adapters to be configured. |
| `knvim.langs.debugger.configurations` | `{}` | Debug configurations specific to each language. |

> [!NOTE]
> For a comprehensive overview of all available types, please refer to the `lua/user/utils/types/knvim.lua` file.

> [!IMPORTANT]
> Ensure that you review and update the `knvim.lua` file according to your specific requirements and preferences. This will help you get the most out of Kin.nvim's features and customization options.

## πŸ“‚ File Structure

You may add or change plugins in `lua/user/plugins`. All files there
will be automatically loaded by [lazy.nvim](https://github.com/folke/lazy.nvim)

```txt
~/.config/nvim or ~/AppData/Local/nvim
β”‚
β”œβ”€β”€ lua
β”‚ └── user
β”‚ β”œβ”€β”€ config
β”‚ β”‚ β”œβ”€β”€ autocmd.lua
β”‚ β”‚ β”œβ”€β”€ init.lua
β”‚ β”‚ β”œβ”€β”€ keymap.lua
β”‚ β”‚ └── option.lua
β”‚ β”œβ”€β”€ helpers
β”‚ β”‚ β”œβ”€β”€ extensions
β”‚ β”‚ β”‚ β”œβ”€β”€ string.lua
β”‚ β”‚ β”‚ └── table.lua
β”‚ β”‚ β”œβ”€β”€ file.lua
β”‚ β”‚ └── paths.lua
β”‚ β”œβ”€β”€ layout
β”‚ β”‚ β”œβ”€β”€ ascii.lua
β”‚ β”‚ └── icons.lua
β”‚ β”œβ”€β”€ packager
β”‚ β”‚ └── init.lua
β”‚ β”œβ”€β”€ plugins
β”‚ β”‚ β”œβ”€β”€ spec1.lua
β”‚ β”‚ β”œβ”€β”€ spec2.lua
β”‚ β”‚ └── ...
β”‚ β”œβ”€β”€ utils
β”‚ β”‚ β”œβ”€β”€ lsp
β”‚ β”‚ β”‚ β”œβ”€β”€ jsonls.lua
β”‚ β”‚ β”‚ β”œβ”€β”€ lua_ls.lua
β”‚ β”‚ β”‚ └── yamlls.lua
β”‚ β”‚ └── types
β”‚ β”‚ β”œβ”€β”€ ascii.lua
β”‚ β”‚ └── knvim.lua
β”‚ └── knvim.lua
β”œβ”€β”€ utils
β”‚ └── scripts
β”‚ β”œβ”€β”€ installer.ps1
β”‚ β”œβ”€β”€ installer.sh
β”‚ β”œβ”€β”€ uninstaller.ps1
β”‚ └── uninstaller.sh
β”‚
└── init.lua
```

## 🌟 Credits

The development of Kin.nvim was inspired by incredible projects that have my sincere thanks to the following repositories:

- [NvChad](https://github.com/NvChad/NvChad)
- [LunarVim](https://github.com/LunarVim/LunarVim)
- [LazyVim](https://github.com/LazyVim/LazyVim)
- [AstroNvim](https://github.com/AstroNvim/AstroNvim)

[//]: Footer

---

> Β© 2025 CainΓ£ Carmo

![][footer_wave]

[//]: Links

[footer_wave]: https://capsule-render.vercel.app/api?type=waving&height=100&color=919F50&reversal=true&section=footer

[ft_cmp]: ./assets/images/cmp.png
[ft_dashboard]: ./assets/images/dashboard.png
[ft_file]: ./assets/images/file.png
[ft_filetree]: ./assets/images/filetree.png
[ft_keybinds]: ./assets/images/keybinds.png
[ft_telescope]: ./assets/images/telescope.png