KrakenVim: My NeoVim Setup, Zero to IDE
š KrakenVim: My NeoVim Setup
I've finally switched to NeoVim completely with my custom configuration: KrakenVim. This is a from-scratch Neovim configuration that combines modern plugin architecture with familiar keybindings, built with lazy.nvim for lightning-fast startup times and modular plugin management.
Why KrakenVim?
- Clean Foundation: Built from the ground up, no bloat
- Muscle Memory: Preserves AstroNvim-style keybindings for seamless transition
- Modular Design: Organized plugin structure for easy customization
- Language-First: Complete LSP, DAP, and tooling for 15+ languages
- Performance: Aggressive lazy loading with sub-100ms startup
- Beautiful: 15 carefully selected themes with persistent picker
š Technical Stats
| Metric | Value | Details |
|---|---|---|
| Startup Time | ~18ms - 45ms | Aggressive lazy-loading & bytecode caching |
| Plugin Count | 65+ | < 10 loaded at startup, rest on-demand |
| Memory Usage | ~28MB | Highly optimized Lua garbage collection |
| Language Support | 20+ | Full LSP, DAP, and linter support |
| Platform | Cross-Platform | Linux, macOS, WSL2, Windows |
⨠Features
- ā” Blazing Fast: Aggressive lazy loading with header caching and sub-50ms startup
- šØ 15 Beautiful Themes: Persistent colorscheme picker with live preview
- š Powerful Fuzzy Finding: Telescope with fzf-native for instant file/text search
- š” Full LSP Support: 20+ languages with auto-completion, diagnostics, and formatting
- š Complete Debugging: DAP configurations for Python, JS/TS, Java, Go, Rust, C/C++
- š³ Treesitter 1.0: Next-gen syntax highlighting and code understanding
- š¤ AI-Powered Completion: GitHub Copilot integration with nvim-cmp
- š§ Auto-Formatting: conform.nvim with 20+ formatters
- š Linting: nvim-lint for real-time code quality checks
- š Beautiful UI: Custom statusline, bufferline, dashboard, and notifications
- š Git Integration: Lazygit, gitsigns, and diffview
š¦ Requirements
| Requirement | Minimum Version | Purpose |
|---|---|---|
| Neovim | 0.10.0 | Core editor with modern Lua API |
| Git | 2.19.0 | Plugin management and version control |
| Node.js | 16.x | LSP servers and tooling |
| npm/yarn | Latest | Package management |
| Nerd Font | Any | Icons and glyphs (JetBrainsMono recommended) |
Recommended Tools
# Better search/find
ripgrep # Fast grep alternative (required for Telescope live_grep)
fd # Fast find alternative (better file finding)
# Git tools
lazygit # Terminal UI for Git (required for <leader>gg)
# File manager
yazi # Modern terminal file manager (required for <leader>-)
š Installation
Linux (Arch)
# Backup existing config
mv ~/.config/nvim ~/.config/nvim.backup
mv ~/.local/share/nvim ~/.local/share/nvim.backup
# Clone KrakenVim
git clone https://github.com/lxrdxe7o/KrakenVim.git ~/.config/nvim
# Install dependencies
sudo pacman -S neovim git nodejs npm ripgrep fd lazygit make gcc
# Launch Neovim (plugins auto-install on first launch)
nvim
macOS
# Backup and clone
mv ~/.config/nvim ~/.config/nvim.backup
git clone https://github.com/lxrdxe7o/KrakenVim.git ~/.config/nvim
# Install via Homebrew
brew install neovim git node ripgrep fd lazygit
# Install a Nerd Font
brew tap homebrew/cask-fonts
brew install font-jetbrains-mono-nerd-font
# Launch
nvim
š Plugin Reference
šØ Colorschemes (15 Themes)
| Theme | Description | Style |
|---|---|---|
| Bamboo | Default, warm multiplex | multiplex |
| Miasma | Dark, muted forest | dark |
| Cyberdream | Futuristic cyberpunk | default |
| Gruvbox | Retro groove warm theme | dark |
| Catppuccin | Soothing pastel theme | mocha |
| TokyoNight | Clean, vibrant night | night |
| Kanagawa | Japanese painting inspired | wave |
| Rose Pine | Natural pine, foam, gold | main |
| Dracula | Classic dracula palette | default |
| Nord | Arctic, north-bluish | default |
| Everforest | Comfortable green forest | medium |
All themes configured with transparent backgrounds, italic comments, LSP semantic highlighting, and Treesitter integration.
š§ LSP & Completion
| Plugin | Purpose |
|---|---|
| nvim-lspconfig | LSP client configurations |
| mason.nvim | LSP/DAP/formatter package manager |
| nvim-cmp | Completion engine |
| LuaSnip | Snippet engine |
| copilot.lua | GitHub Copilot integration |
| conform.nvim | Async formatting engine |
| nvim-lint | Asynchronous linter integration |
Supported Languages (Auto-Install): Lua, Python, JavaScript, TypeScript, Java, Rust, Go, C, C++, HTML, CSS, SCSS, Tailwind, Vue, Svelte, React, JSON, YAML, TOML, Bash, Markdown
š Debugging (DAP)
Pre-configured debug adapters for multiple languages:
| Language | Adapter | Features |
|---|---|---|
| Python | debugpy | File, args, Django, Flask, attach |
| JavaScript/TypeScript | js-debug-adapter | Node, Jest, Mocha, Chrome |
| Java | java-debug-adapter | File, tests, attach, hot reload |
| Go | delve | File, package, workspace, tests |
| Rust | codelldb | Cargo debug, file, attach |
| C/C++ | codelldb | Executable, args, attach |
āļø Editor Enhancements
| Plugin | Purpose |
|---|---|
| nvim-treesitter | Syntax highlighting & code parsing |
| mini.surround | Add/delete/replace surroundings |
| mini.ai | Extended text objects (functions, classes) |
| telescope.nvim | Fuzzy finder for files, grep, LSP |
| neo-tree.nvim | File explorer with Git integration |
| gitsigns.nvim | Git decorations and hunk operations |
| Comment.nvim | Smart commenting (gcc, gbc) |
| neoscroll.nvim | Smooth scrolling animations |
| indent-blankline.nvim | Rainbow indent guides |
āØļø Keybindings
Leader Key: Space
General
| Key | Mode | Action |
|---|---|---|
| Ctrl-h/j/k/l | N | Navigate windows |
| Ctrl-s | N, I | Save file |
| jk / jj | I | Escape to normal mode |
| gcc | N | Comment line |
| gc | V | Comment selection |
| leader+h | N | Home (Alpha dashboard) |
File Navigation (leader+f)
| Key | Action |
|---|---|
| leader+ff | Find files (Telescope) |
| leader+fg | Live grep (Telescope) |
| leader+fb | Buffers (Telescope) |
| leader+fr | Recent files (Telescope) |
| leader+fk | Keymaps (Telescope) |
LSP (leader+l, g*)
| Key | Action |
|---|---|
| gd | Go to definition |
| gr | Go to references |
| K | Hover documentation |
| leader+la | Code action |
| leader+lr | Rename symbol |
| leader+lf | Format buffer |
Debugging (leader+d)
| Key | Action |
|---|---|
| leader+dc | Continue |
| leader+ds | Start/Continue |
| leader+db | Toggle Breakpoint |
| leader+du | Toggle DAP UI |
| F5 | Continue |
| F10 | Step over |
| F11 | Step into |
š§ Customization
File Structure
~/.config/nvim/
āāā init.lua # Entry point
āāā lua/
ā āāā config/
ā ā āāā options.lua # Neovim options
ā ā āāā keymaps.lua # Global keymaps
ā ā āāā autocmds.lua # Autocommands
ā ā āāā colorscheme.lua # Theme persistence
ā āāā plugins/
ā āāā colorscheme.lua # Theme plugins
ā āāā completion.lua # nvim-cmp & snippets
ā āāā dap.lua # Debugging configs
ā āāā editor.lua # Editor enhancements
ā āāā lsp.lua # LSP configurations
ā āāā tools.lua # Terminal, git, builds
ā āāā ui.lua # Statusline, dashboard
āāā ftplugin/
āāā java.lua # Java-specific setup
Adding Plugins
Create a new file in lua/plugins/ or add to existing category:
-- lua/plugins/my-plugins.lua
return {
{
"author/plugin-name",
event = "VeryLazy",
opts = {
-- plugin options
},
},
}
Restart Neovim and run :Lazy to install.
šØ Theme System
KrakenVim includes a persistent colorscheme picker:
:Telescope colorscheme
- Live Preview: See theme changes in real-time
- Persistent Selection: Choice saved to ~/.local/share/nvim/colorscheme.txt
- Revert on Cancel: Esc returns to original theme
- Apply on Enter: CR saves and persists selection
š Conclusion
KrakenVim transforms Neovim into a full-featured IDE while maintaining the speed and efficiency that makes Vim legendary. With 15+ language support, beautiful themes, and a modular architecture, it's the perfect balance between power and simplicity.
Check out the full configuration: github.com/lxrdxe7o/KrakenVim
Happy coding! š