Skip to content

Latest commit

 

History

History
109 lines (72 loc) · 3.62 KB

readme.adoc

File metadata and controls

109 lines (72 loc) · 3.62 KB

📜 About

license kofi

This is my personal neovim config inspired by LazyVim, with KISS in mind.

✨ Features

  • KISS: simple and stupid, less is better

  • Easy: either to understand or to extend

  • Fast: modern neovim config with pure lua

  • Ready: comfortable and convenient out of the box

🖼️ Preview

dashboard

coding

plugins

float terminal

⚡️ Requirements

  • Neovim >= 0.10.0 (needs to be built with LuaJIT)

  • Git >= 2.19.0 (for partial clones support)

  • a Nerd Font (optional)

  • a C compiler for nvim-treesitter. See here

  • external tools (configured in lua/init/options.lua:M.plugins)

    • treesitter parser: used by nvim-treesitter, install/update with :TSUpdate

    • lsp server, linter, formatter: managed by mason, install/update with :MasonUpdate

    • dap: external debug tools, install: mason or manually

🚀 Getting Started

# backup your neovim config
mkdir -p nvim
mv ~/.config/nvim/ nvim/nv.config
mv ~/.local/share/nvim/ nvim/nv.share
mv ~/.local/state/nvim/ nvim/nv.state
mv ~/.cache/nvim/ nvim/nv.cache

# clone the repo
git clone https://github.com/rtgiskard/lazyNvim.git ~/.config/nvim

# launch
nvim

# enter `Y` to install lazy.nvim and the plugins

⚙️ Configuration

lua/init/options.lua

most of neovim’s options and some of the plugins' specs are configured here

lua/init/keymaps.lua

except for nvim and plugins' defaults, all manually configured keymaps are maintained here

lua/plugins/

define all the plugins managed by lazy.nvim with the spec settings

As this is not meant to be an all-in-one config for all dev languages, the initial setup includes only a limited set that I personally use, you may want to adjust it as you need, like lsp servers and formatters list in lua/init/options.lua::plugins, which should be enough.

Some of the settings are switchable via keymaps (like mouse, linenumber, listchars and etc.), of course you can define more with the handlers held in lua/init/utils.lua.

And you may also find some references from lazyVim’s doc.

🗒️ Plugin Notes

  • treesitter: syntax parser, provide better highlighting

  • lsp: language server, provide: completion, linting, formatting, diagnostics, hover/jump ..

  • linter: common checks and provide hints, run with or without lsp

  • formatter: format code, takes priority over lsp format

  • dap: debug adapter

  • related utils:

    1. mason: help to install lsp/dap/linter/formatter tools

    2. lspconfig: configurations for lsp servers

  • ui enhancement:

    1. telescope: the extendable fuzzy finder

    2. notify: popup notification

    3. themes and misc

  • other tools: complete, indent, trim, pairs, and etc.

🧾 License

This project is licensed under the terms of the GPLv3 or any later version.


kofi1