Skip to content

A minimal, bare-bones Neovim configuration based on the KISS principle.

License

Notifications You must be signed in to change notification settings

sh7ven/kiss.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kiss.nvim

A minimal, bare-bones Neovim configuration based on the KISS principle. To read more about the reason this repository exists, read here.

Installation

$ git clone https://github.com/sh7ven/kiss.nvim "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim

This should work across most Linux flavors. Just in case, verify if the value of:

$ echo "${XDG_CONFIG_HOME:-$HOME/.config}/nvim"

matches with (run from within Neovim):

:echo stdpath("config")

Directory structure

├── init.lua  
└── lua  
   └── custom  
       ├── init.lua  
       ├── lazy  
       │   ├── gruvbox.lua  
       │   ├── init.lua  
       │   ├── lsp.lua  
       │   └── telescope.lua  
       └── lazy_init.lua  

Pre-installed plugins

Python

In most modern Linux distributions, pip can no longer manage system-wide libraries, and it is advised to either use a virtual environment or download distro-specific packages.

You can pass the path to a Python binary in a virtual environment, to the pythonPath variable under pyright setup in lua/custom/lazy/lsp.lua.

python = {
    pythonPath = "/home/user/Venv/bin/python"
}

This is just an example for Pyright. If you opt to choose a different LSP for Python, please read through plugin settings for that LSP.

Keybinds

  • <Ctrl-e> to open the fuzzy finder.
    That's it, lol.

Extending / Customizing

custom is just a placeholder directory for one specific configuration. If you want to experiment with your own config without having to re-clone again and again, just make a new directory like custom. Be creative! I have a config of my own name, and one called 'Caravan'.

To use a particular configuration, edit config/nvim/init.lua:

require('custom_config')

The same init.lua contains editor specific settings, which are independent of plugins. For instance, mouse mode.

Why?

I spent a lot of time trying to find a minimal configuration that setup basic utilities - a modern, stable plugin manager, a legible colorscheme, and an LSP for autcompletion.

Most pre-existing configurations I looked at online were packed with a plethora of packages, most of which no one would consider using. This configuration is aimed at being minimal, whilst being usable immediately after installation, while also having a super-fast startup.

This repo is also for people who don't want to spend massively unreasonable amounts of time creating a configuration from scratch, like I did here.

I'll probably write a short guide on creating this from scratch. But, on a second thought, that would defeat the purpose of this configuration existing. Meh.

License

GNU GPLv3. Simply put, do whatever you want with this code, there are no restrictions.

About

A minimal, bare-bones Neovim configuration based on the KISS principle.

Topics

Resources

License

Stars

Watchers

Forks

Languages