Welcome to my Neovim configuration repository! This setup is designed to transform Neovim into a powerful, modern code editor tailored for web development and beyond. Inspired by the latest tools and plugins, this configuration is optimized for productivity, aesthetics, and functionality. Below is a concise overview of the setup and its features.
This Neovim configuration includes:
- Plugin Management: Powered by
lazy.nvim
, a fast and efficient plugin manager. - File Explorer: Enhanced with
nvim-tree.lua
for a modern file navigation experience. - Fuzzy Finder:
telescope.nvim
for seamless file and text searching. - Syntax Highlighting:
tree-sitter
for advanced syntax parsing and highlighting. - LSP Support: Integrated with
mason.nvim
for easy installation of language servers. - Auto-Completion:
nvim-cmp
with snippets, LSP integration, and VS Code-like icons. - Git Integration:
gitsigns.nvim
andlazygit.nvim
for version control within Neovim. - Formatting & Linting:
conform.nvim
andnvim-lint
for code formatting and linting. - UI Enhancements: Beautiful status lines with
lualine.nvim
, tabs withbufferline.nvim
, and a sleek dashboard withalpha.nvim
. - Custom Keymaps: Intuitive keybindings for navigation, splits, tabs, and more.
- Session Management:
auto-session.nvim
for restoring your workspace effortlessly.
- Neovim: Ensure you have Neovim (v0.9.5 or higher) installed.
- Homebrew: For macOS/Linux, install dependencies like
ripgrep
,node
, andnerd fonts
. - Git: Required for plugin management and version control.
- Clone this repository into your Neovim config directory:
git clone https://github.com/your-username/neovim-config.git ~/.config/nvim
- Open Neovim:
nvim
- Wait for
lazy.nvim
to automatically install all plugins.
lazy.nvim
: Plugin manager for lazy-loading and efficient setup.nvim-tree.lua
: File explorer with icons and Git integration.telescope.nvim
: Fuzzy finder for files, text, and more.tree-sitter
: Advanced syntax highlighting and parsing.mason.nvim
: Easy installation of LSP servers, linters, and formatters.nvim-cmp
: Auto-completion with LSP, snippets, and VS Code-like icons.lualine.nvim
: Customizable status line.bufferline.nvim
: Enhanced tab management.
gitsigns.nvim
: Git status in the gutter (added, modified, deleted lines).lazygit.nvim
: Terminal UI for Git commands.
conform.nvim
: Auto-formatting with Prettier, Black, and more.nvim-lint
: Linting with ESLint, Pylint, etc.
alpha.nvim
: A sleek dashboard for Neovim.tokyonight.nvim
: A beautiful color scheme.indent-blankline.nvim
: Visual indentation guides.
Here are some of the keybindings to supercharge your workflow:
Keybinding | Action |
---|---|
<Leader>e |
Toggle file explorer (nvim-tree ) |
<Leader>ff |
Find files (telescope ) |
<Leader>fg |
Live grep (telescope ) |
<Leader>fr |
Recent files (telescope ) |
<Leader>fs |
Search string in project (telescope ) |
<Leader>gs |
Stage Git hunk (gitsigns ) |
<Leader>gu |
Undo Git hunk (gitsigns ) |
<Leader>gd |
Open Git diff (gitsigns ) |
<Leader>lg |
Open lazygit (lazygit.nvim ) |
<Leader>ca |
Code actions (LSP) |
<Leader>rn |
Rename symbol (LSP) |
<Leader>gd |
Go to definition (LSP) |
<Leader>gr |
Go to references (LSP) |
<Leader>mp |
Format file (conform.nvim ) |
<Leader>xx |
Open trouble.nvim for diagnostics |
The configuration is organized as follows:
~/.config/nvim/
βββ init.lua # Main entry point
βββ lua/
β βββ core/ # Core settings (options, keymaps)
β βββ plugins/ # Plugin configurations
β βββ lsp/ # LSP configurations
βββ README.md # This file
This configuration is designed to:
- Be highly customizable for different workflows.
- Provide a modern IDE-like experience in Neovim.
- Optimize performance with lazy-loading plugins.
- Support web development and other programming languages.
This configuration was inspired by the video: How I Setup Neovim To Make It AMAZING In 2024 | Complete Guide. Special thanks to the creator for the detailed walkthrough.
Enjoy your new Neovim setup! If you have any questions or suggestions, feel free to open an issue or reach out. Happy coding! π
Made with β€οΈ by [Daksh]
GitHub: GitDaksh