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.9.0
- 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
β βββ comment.lua # Smart commenting
β βββ conform.lua # Code formatting
β βββ copilot.lua # GitHub Copilot
β βββ cssvarviewer.lua # CSS variable viewer
β βββ dressing.lua # Better UI elements
β βββ fugitive.lua # Git integration
β βββ fzf-lua.lua # Fuzzy finder
β βββ gitsigns.lua # Git signs in gutter
β βββ hardtime.lua # Better vim habits
β βββ indent-blankline.lua # Indentation guides
β βββ init.lua # Plugin manager setup
β βββ kanagawa.lua # Kanagawa colorscheme
β βββ lazygit.lua # Git GUI
β βββ linting.lua # Code linting
β βββ lspsaga.lua # Enhanced LSP UI
β βββ lualine.lua # Statusline
β βββ luarocks.lua # Lua package manager
β βββ markdown-preview.lua # Markdown preview
β βββ mdx.lua # MDX support
β βββ noice.lua # Better notifications
β βββ nvim-tree.lua # File explorer
β βββ obsidian.lua # Obsidian integration
β βββ onedark.lua # One Dark colorscheme
β βββ pencil.lua # Better writing
β βββ snacks.lua # Utility functions
β βββ substitute.lua # Better substitution
β βββ surround.lua # Surround text objects
β βββ todo-comments.lua # Todo highlighting
β βββ toggleterm.lua # Terminal management
β βββ tokyonight.lua # Tokyo Night theme
β βββ treesitter.lua # Syntax highlighting
β βββ trouble.lua # Diagnostics panel
β βββ twilight.lua # Focus mode
β βββ undotree.lua # Undo history
β βββ vim-astro.lua # Astro framework support
β βββ vim-coach.lua # Vim learning
β βββ vim-maximizer.lua # Window maximizing
β βββ vim-visual-multi.lua # Multiple cursors
β βββ which-key.lua # Keybinding help
β βββ zen-mode.lua # Distraction-free writing
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 β