Skip to content

Latest commit

 

History

History

nvim

Neovim Config

Simple but featured. Focused on ergonomics, mnemonics and consistency.

Cherry pick the lines you need and totally understand.

Always a WIP 🏗️

nvim-demo

✨ Features

I'm a minimalist, adhering to the KISS principle and embracing the philosophy of "do one thing and do it better". I only install the plugins that are absolutely essential, avoiding all-in-one solutions. I favor plugins that enhance Vim’s native functionality while steering clear of those that alter its original behavior. For features that are straightforward to implement, I prefer to create them myself, maximizing reliability and control.

Functionalities I implemented:

  • Comprehensive and aesthetic statusline: Statusline
  • Concise LSP progress message in bottom right: LSP progress
  • Lightbulb with VSCode-style: Lightbulb
  • Minimalist indent guide built on listchars: Indent guide
  • Neat indent scope display with support for motions and text objects: Indent scope
  • Appealing winbar showing file path, diagnostics and breadcrumbss: Winbar
  • Elegant tabline: Tabline
  • Simple yet efficient statuscolumn: Statuscolumn
  • Clean and visually pleasing quickfix window: Quickfix window
  • Comprehensive set of lightning-fast fuzzy finders built on fzf.vim: Fuzzy finders

Plugins essential to my setup:

To see all the plugins I am using 👉 my plugins and their configs 👉 plugin configs

🚀 Key mappings

I assign the key mappings rationally aiming to make them efficient and easy to remember.

  • Multiple leader keys

    In addition to <Space> that is the general leader key, , serves as the leader key for git, while yo for toggling.

  • Mnemonic

    Key bindings are organized using mnemonic prefixes like <Leader>b for buffer, <Leader>f for fuzzy finder, <Leader>w for window, and so forth.

  • Consistent

    Similar functionalities have the same key binding throughout my dotfiles. For example, , and . for moving tabs in both kitty and Neovim.

🎪 Showcases

Fuzzy finders

I implemented a series of fuzzy finders based on fzf.vim instead of using ready-made fuzzy finder plugins because I find them bloated and slower in extreme environments. Additionally, I prefer full control and not having to worry about essential plugins becoming unmaintained.

fuzzy-finders

LSP progress message

lsp-progress

Lightbulb

I use a lightning icon instead of a bulb.

lightbulb

Quickfix list

quickfix