๐ค My neovim config aka PDE (Personal Development Environment)
November 13, 2025 ยท View on GitHub
Behold, the mystical incantations of my Neovim configuration, carefully crafted to summon the spirits of efficiency and productivity from the depths of the digital abyss. With the precision of a surgeon and the finesse of a ninja, I've concocted a brew of plugins and keybindings that dance harmoniously to the rhythm of my keystrokes weaving spells of autocomplete and syntax highlighting to illuminate the darkest recesses of my codebase.
init.lua/(Always WIP)
โก Requirements
- Neovim >= 0.9.4 (needs to be built with LuaJIT)
- Git >= 2.19.0 (for partial clones support)
- a Nerd Font(v3.0 or greater) as your terminal font.
Make sure the nerd font you set doesn't end with Mono to prevent small icons. Example :
JetbrainsMono Nerd Fontand notJetbrainsMono Nerd Font Mono - lazygit (optional) for git integration
- a C compiler for
nvim-treesitter. See here - for telescope.nvim (optional)
- a terminal that support true color and undercurl:
You can also run the setup.sh if you are lazy and it will install all the requirements for you considering
you are on a unix based system
Install Instructions
Install requires Neovim 0.9+. Always review the code before installing a configuration.
Clone the repository and install the plugins:
git clone git@github.com:rubiin/init.lua ~/.config/rubiin/init.lua
NVIM_APPNAME=rubiin/init.lua/ nvim --headless +"Lazy! sync" +qa
Open Neovim with this config:
NVIM_APPNAME=rubiin/init.lua/ nvim
Docker Instructions
docker run -w /root -it --rm alpine:latest sh -uelic '
apk add git nodejs neovim ripgrep build-base wget --update
git clone https://github.com/rubiin/init.lua ~/.config/nvim
nvim
'
Post installation
Replace local plugins specs with the ones from the remote repository:
~/personal-vim-plugs/xyz becomes rubiin/xyz
NOTE for Windows users:
- don't use Windows
- try WSL2 on Windows and pretend you're on Linux (it's better)
Directory structure
โโโ after
โ โโโ ftplugin # Override filetype settings
โ โโโ queries # Override filetype settings
โ โโโ syntax # Override syntax settings
โโโ autoload
โโโ CHANGELOG.md # Changelog file for the project
โโโ init.lua # Initialization file for Vim or Neovim
โโโ lazy-lock.json # Lockfile for lazy.nvim plugin manager
โโโ lazyvim.json # LazyVim configuration file
โโโ LICENSE # File containing licensing information
โโโ lua
โ โโโ config # Core configuration scripts
โ โโโ custom # Custom Lua scripts
โ โโโ plugins # Configurations for plugins
โ โ โโโ coding # Coding related plugins
โ โ โโโ disabled.lua # Disabled plugins
โ โ โโโ editor # Editor related plugins
โ โ โโโ extras # Extra plugins that are not loaded by default
โ โ โโโ init.lua
โ โ โโโ overrides.lua # Plugin overrides
โ โ โโโ lsp # Language server protocol related plugins
โ โ โโโ ui # UI related plugins
โ โ โโโ local # Local plugins
โ โโโ rubin # Utility scripts
โ โโโ utils # Personal utility scripts
โ โโโ spellfixes.lua # Spellfixes Lua script
โโโ misc # Misc folders
โ โโโ snippets
โ โโโ undo
โโโ README.md # Readme file for the project
โโโ setup.sh # Shell script for bootstrapping required tools
โโโ spell # Directory possibly containing spellcheck related files
โโโ stylua.toml # Configuration file for Stylua
โโโ .typos.toml # Configuration file for typos-lsp
โโโ .luarc.json # Configuration file for Lua language server
UI
Start screen with dashboard-nvim

Editor

Plugins
Plugins
code-runner
colorscheme
comment
- folke/todo-comments.nvim
- danymat/neogen
- JoosepAlviste/nvim-ts-context-commentstring
- echasnovski/mini.comment
- numToStr/Comment.nvim
completion
diagnostics
editing-support
- HiPhish/rainbow-delimiters.nvim
- windwp/nvim-autopairs
- folke/snacks.nvim
- Wansmer/treesj
- windwp/nvim-ts-autotag
- okuuva/auto-save.nvim
- echasnovski/mini.pairs
file-explorer
formatting
game
git
icon
indent
keybinding
lsp
lsp-installer
marks
note-taking
nvim-dev
plugin-manager
preconfigured
project
session
snippet
startup
statusline
syntax
tabline
utility
workflow
Language Servers
- astro
- eslint
- flow
- graphql
- html
- svelte
- taplo
- vtsls
-Note: These are the plugin list and most of them are not loaded by default.
You can enable them by adding the require line on lua/plugins/init.lua.
Some are disabled by default because they are not used by me but I keep them there for reference.
Personalization
You can customize the banner with the globals on lua/rubiin/globals.lua:
g.vscode_snippets_path = fn.stdpath("config") .. "/misc/snippets" -- Path to vscode snippets
g.github_username = "rubiin" -- Github username
g.random_banner = true -- Random banner
g.fortune = true -- Fortune in start screen
g.border_style = "single" ---@type "single"|"double"|"rounded"|"solid"|"none"
If you want to start neovim with no plugins whatsoever you can use the --clean flag. For example, if you want
to use neovim as your git editor you can add this to your .gitconfig:
core.editor = nvim --clean
But beware, dear traveler, for navigating the labyrinthine corridors of the Neovim config is not for the faint of heart. One wrong keystroke, and you could find yourself lost in a sea of syntax errors, tangled in the vines of conflicting plugins, or worse โ staring into the abyss of an unresponsive editor.
Yet fear not, for even in the darkest depths of plugin hell, there is hope. With the wisdom of the Vim masters as your guide and the camaraderie of fellow developers as your shield, you shall emerge victorious. And when you do, you'll look back on your Neovim configuration not just as a set of preferences, but as a testament to your resilience, your creativity, and your ability to laugh in the face of even the most cryptic Vimscript errors.
Self-Promotion
Like the config? Follow the repository on GitHub. If you find this config useful, you might also be interested in my other projects:
Credits and Further reading/learning
Huge shoutout to the Vim elders, whose ancient wisdom and cryptic commands paved the way for the adoption of Neovim. May your modal editing skills be forever sharp, and your init.lua files forever tidy.
- Teejay Devries for his videos
- Christian Chiarulli for his videos
- ThePrimeagen for his videos
- Alpha2phi for his Article
May these resources serve as beacons of light on your journey through the labyrinthine corridors of Neovim. Happy coding, and may your keystrokes be ever swift and your plugins ever reliable!