Simple but featured. Focused on ergonomics, mnemonics and consistency.
Cherry pick the lines you need and totally understand.
Always a WIP 🏗️
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:
- Minimal plugin manager minpac
- Nvim builtin LSP client configured by nvim-lspconfig
- Treesitter support nvim-treesitter
- Ultra-fast auto-completion backed by blink.cmp
- Fully Git integration with vim-fugitive, gitsigns.nvim, vim-flog, etc
- Consolidated code formatting via conform.nvim
- Snippet engine LuaSnip
- Undo history visualizer with undotree
- Improved code search via vim-grepper, vim-asterisk, etc
- Enhanced text objects with targets.vim, etc
- Symbol outline and tags with aerial.nvim and tagbar
To see all the plugins I am using 👉 my plugins and their configs 👉 plugin configs
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, whileyo
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.
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.
I use a lightning icon instead of a bulb.