Skip to content

Neovim Setup βœ¨πŸŽ―πŸ“

Welcome to the heart of my terminal editing workflow β€” Neovim, fully pimped and optimized for speed, clarity, and power. πŸš€πŸ–₯️⚑


πŸ› οΈ Core Configuration πŸ”§

  • Enabled via Nix 🐧: Neovim is managed declaratively through Nix, ensuring reproducibility and ease of updates.
  • Aliases & Defaults πŸ”„: nvim is set as the default editor, with aliases for vi, vim, and vimdiff for convenience.
  • Lua-powered 🐍: The entire config is Lua-based, stored in ~/Dotfiles/home-manager/modules/cli/nvim/lua for modularity and performance.

🎨 Theme & Appearance 🌈

  • Nord & Everforest β„οΈπŸŒ²: I blend the calm, cool Nord colorscheme with the cozy, organic Everforest palette.
  • Custom Settings βš™οΈ:

  • g:nord_contrast = true πŸ”³ β€” enhanced contrast for better readability

  • g:nord_borders = false 🚫 β€” minimal borders for clean UI
  • g:nord_disable_background = false πŸ–ΌοΈ β€” keep the background
  • g:nord_italic = false 🚫 β€” no italics to avoid distractions
  • g:nord_uniform_diff_background = true 🎨 β€” consistent diff backgrounds
  • g:nord_bold = false βœ–οΈ β€” subtle bold text

πŸ”Œ Plugins & Features ⚑✨

I use a curated set of plugins to supercharge coding and navigation:

Completion & Snippets πŸ€–πŸ’‘

  • nvim-cmp & cmp-nvim-lsp for smart autocompletion
  • luasnip + friendly-snippets for powerful snippet support

UI Enhancements 🌟πŸ–₯️

  • alpha-nvim β€” Custom startup dashboard πŸšͺ
  • lualine-nvim β€” Fancy statusline with useful info πŸ“Š
  • indent-blankline-nvim β€” Visually clean indentation guides β†ͺ️
  • nvim-notify β€” Notification system πŸ””
  • telescope-nvim β€” Fuzzy finder powerhouse πŸ”­
  • nvim-tree-lua β€” File explorer πŸ“
  • vim-visual-multi β€” Multi-cursor editing ✍️

Code & Language Support πŸ§‘β€πŸ’»πŸ’»

  • nvim-lspconfig for LSP setup supporting multiple languages 🌐
  • Language servers like ccls, clang-tools, gopls, pyright, lua-language-server, typescript-language-server, and more installed as extra packages πŸ“¦
  • Treesitter parsers for Bash, C, C++, Go, Lua, Python, PHP, JSON, YAML, and others for syntax highlighting and code awareness 🌳

Quality of Life πŸ§ΉπŸ› οΈ

  • conform-nvim β€” formatting support 🧼
  • nix-develop-nvim β€” handy Nix development integration 🐧
  • noice-nvim β€” enhanced command-line UI πŸ’¬
  • render-markdown-nvim & markdown-preview-nvim for Markdown editing πŸ“

πŸ—οΈ Extra Packages πŸ“¦

The config extends Neovim’s power with language servers and tools installed at the system level, providing:

  • Robust language support for C, Go, Lua, Python, TypeScript, and more πŸ› οΈ
  • Linters like ruff for Python 🐍
  • Tools like nixd for Nix language support ❄️

Why This Setup? πŸ€”πŸ’‘

  • Reproducible & Portable 🌍: Configured declaratively through Nix to keep your setup consistent across machines.
  • Performance Focused ⚑: Lua-based config with minimal overhead, optimized for smooth operation.
  • Balanced Look & Feel 🎨: Clean, distraction-free UI with powerful features always within reach.
  • Developer Productivity πŸš€: All your essential tools and workflows integrated seamlessly.

Ready to dive deeper? πŸ”₯ Check out the lua directory for all the juicy config details! 🐍⚑