Personal development environment optimized for web development with React, TypeScript, Astro, and more.
- 🚀 Fast startup with lazy.nvim plugin management
- 🎨 Tokyo Night theme (matching my portfolio)
- 📝 Web development ready - TypeScript, React, Astro, CSS, Markdown support
- ⚡ Custom keybindings for maximum productivity
- 🔍 Fuzzy finding with Telescope and FZF
- 🌳 Git integration with Gitsigns, Fugitive, and LazyGit
- 📊 Beautiful statusline with Lualine (Tokyo Night theme)
- 🎯 LSP configured for modern web development with Mason
- 🎨 Multiple colorschemes - Tokyo Night, One Dark
- 📝 Enhanced editing with autopairs, comments, and text objects
- 🔧 Code formatting with Conform and Prettier support
- Neovim >= 0.11.4
- Git for cloning and plugin management
- Node.js >= 16 (for LSP servers and formatters)
- A Nerd Font (I recommend Lekton Nerd Font)
- ripgrep for fast text searching
- fd for fast file finding (optional but recommended)
# Backup your current config (if any)
mv ~/.config/nvim ~/.config/nvim.backup
mv ~/.local/share/nvim ~/.local/share/nvim.backup
mv ~/.local/state/nvim ~/.local/state/nvim.backup
mv ~/.cache/nvim ~/.cache/nvim.backup
git clone https://github.com/dlemm/nvim-config.git ~/.config/nvim
nvim
On first startup, lazy.nvim will automatically:
- Install itself
- Download and install all configured plugins
- Set up LSP servers via Mason
- Configure formatters and linters
This may take a few minutes on the first run. Be patient! ☕
Most tools will be installed automatically, but you can manually manage them:
:Mason
:Lazy
:checkhealth
- Leader key:
<Space>
- File explorer:
<leader>ee
(nvim-tree) - Fuzzy finder:
<leader>ff
(files)
- Git status:
<leader>lg
(LazyGit)
- Go to definition:
<leader>gd
The configuration is modular and organized as follows:
~/.config/nvim/
├── init.lua # Entry point
├── lazy-lock.json # Plugin version lock file
├── lua/
│ ├── 314rate/ # Custom namespace
│ │ └── core/ # Core configuration
│ │ ├── init.lua # Core initialization
│ │ ├── keymaps.lua # Global keymaps
│ │ └── options.lua # Neovim options
│ └── plugins/ # Plugin configurations
│ ├── lsp/ # LSP related configs
│ │ ├── lsp-servers.lua
│ │ ├── lspconfig.lua
│ │ └── mason.lua
│ ├── autopairs.lua # Auto-closing brackets
│ ├── blink.lua # Completion engine
│ ├── cloak.lua # Hide sensitive data
│ ├── colorize.lua # Color highlighting
│ ├── conform.lua # Code formatting
│ ├── copilot.lua # GitHub Copilot
│ ├── fzf-lua.lua # Fuzzy finder
│ ├── indent-blankline.lua # Indentation guides
│ ├── init.lua # Plugin manager setup
│ ├── lazygit.lua # Git GUI
│ ├── linting.lua # Code linting
│ ├── lspsaga.lua # Enhanced LSP UI
│ ├── lualine.lua # Statusline
│ ├── mdx.lua # MDX support
│ ├── noice.lua # Better notifications
│ ├── nvim-tree.lua # File explorer
│ ├── obsidian.lua # Obsidian integration
│ ├── snacks.lua # Utility functions
│ ├── substitute.lua # Better substitution
│ ├── surround.lua # Surround text objects
│ ├── todo-comments.lua # Todo highlighting
│ ├── tokyonight.lua # Tokyo Night theme
│ ├── treesitter.lua # Syntax highlighting
│ ├── trouble.lua # Diagnostics panel
│ ├── undotree.lua # Undo history
│ ├── vim-astro.lua # Astro framework support
│ ├── vim-coach.lua # Vim learning
│ ├── which-key.lua # Keybinding help
Feel free to modify any settings to match your workflow:
- Theme: Multiple themes available in respective plugin files
- Keybindings: Modify
lua/314rate/core/keymaps.lua
- LSP settings: Adjust files in
lua/plugins/lsp/
- Plugin list: Edit individual plugin files or disable in
lua/plugins/init.lua
- lazy.nvim - Fast and modern plugin manager
- mason.nvim - LSP server, formatter, and linter installer
- nvim-treesitter - Advanced syntax highlighting
- tokyo-night.nvim - Beautiful colorscheme
- lualine.nvim - Customizable statusline
- nvim-tree.lua - File explorer
- which-key.nvim - Keybinding hints
- nvim-lspconfig - LSP configuration
- blink.cmp - Fast completion engine
- conform.nvim - Code formatting
- trouble.nvim - Diagnostics panel
- gitsigns.nvim - Git decorations
- fugitive.vim - Git commands
- lazygit.nvim - Terminal Git UI
- telescope.nvim & fzf-lua - Fuzzy finding
- copilot.lua - AI pair programming
- todo-comments.nvim - Todo highlighting
- markdown-preview.nvim - Live markdown preview
This configuration is optimized for:
- Frontend: React, TypeScript, Next.js, Astro, Hugo, JavaScript, CSS/SCSS
- Backend: Node.js, Python
- Tools: Git, Bash, Docker
- Markup: Markdown, MDX, JSON, YAML
- Documentation: Obsidian notes integration
Make sure you have a Nerd Font installed and set as your terminal font.
# Check conform status
:ConformInfo
# Check available formatters
:Mason
This is my personal configuration, but feel free to:
- 🍴 Fork it for your own use
- 🐛 Report issues you encounter
- 💡 Suggest improvements via issues or PRs
- 📖 Share your customizations
This configuration is inspired by:
MIT License - feel free to use and modify as you wish.
Dennis Lemm
Built with ❤️ and lots of ☕