Skip to content

ankit02327/nvim-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

18 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

image

๐Ÿš€ Neovim Configuration

My meticulously crafted Neovim setup built with Lua โ€” modular, performant, and optimized for developer productivity.

A thoughtfully designed Neovim configuration that balances functionality, performance, and aesthetics. Built with a modular approach using Lua for maximum flexibility and maintainability.

โœจ Features

  • ๐Ÿงฉ Modular Architecture - Logically organized configuration split into maintainable files
  • ๐Ÿ”Œ Lazy-loaded Plugins - Optimized startup with lazy.nvim
  • ๐Ÿง  Advanced LSP Support - Code intelligence with mason.nvim for easy LSP/DAP/linter management
  • ๐ŸŽจ Elegant UI - Beautiful interface with statusline, bufferline, and carefully selected themes
  • ๐ŸŒฒ Tree-sitter Integration - Enhanced syntax highlighting and code navigation
  • ๐Ÿ” Fuzzy Finding - Powerful search capabilities with telescope.nvim
  • ๐Ÿ“ Enhanced Editing - Smart pairs, surrounds, commenting, and substitutions
  • ๐Ÿงน Code Quality Tools - Integrated formatting and linting
  • ๐Ÿ“‚ File Management - Intuitive file explorer with nvim-tree
  • ๐Ÿ”„ Git Integration - Seamless version control with gitsigns.nvim
  • ๐Ÿ“Œ Task Management - TODO comment highlighting and navigation
  • ๐Ÿ’ป Language Support - Special configurations for C++ and other languages
  • โšก Performance Optimized - Fast startup time without sacrificing functionality

๐Ÿ“‹ Requirements

  • Neovim >= 0.9.0
  • Git
  • [Optional] A Nerd Font for icons
  • [Optional] ripgrep for enhanced Telescope search

๐Ÿ”ง Installation

  1. Back up your existing Neovim configuration:

    mv ~/.config/nvim ~/.config/nvim.backup
  2. Clone this repository:

    git clone https://github.com/ankit02327/nvim-config.git ~/.config/nvim
  3. Start Neovim:

    nvim
  4. The plugin manager will automatically install all plugins on first launch.

๐Ÿ“ Configuration Structure

.
โ”œโ”€โ”€ init.lua                 # Entry point
โ”œโ”€โ”€ lazy-lock.json           # Plugin lockfile
โ”œโ”€โ”€ lua
โ”‚   โ””โ”€โ”€ ankit                # Main configuration namespace
โ”‚       โ”œโ”€โ”€ core             # Core Neovim settings
โ”‚       โ”‚   โ”œโ”€โ”€ init.lua     # Core module loader
โ”‚       โ”‚   โ”œโ”€โ”€ keymaps.lua  # Key mappings
โ”‚       โ”‚   โ””โ”€โ”€ options.lua  # Neovim options
โ”‚       โ”œโ”€โ”€ lazy.lua         # Plugin manager setup
โ”‚       โ””โ”€โ”€ plugins          # Plugin configurations
โ”‚           โ”œโ”€โ”€ alpha.lua    # Dashboard
โ”‚           โ”œโ”€โ”€ autopairs.lua
โ”‚           โ”œโ”€โ”€ auto-session.lua
โ”‚           โ”œโ”€โ”€ bufferline.lua
โ”‚           โ”œโ”€โ”€ colorscheme.lua
โ”‚           โ”œโ”€โ”€ comment.lua
โ”‚           โ”œโ”€โ”€ dressing.lua
โ”‚           โ”œโ”€โ”€ formatting.lua
โ”‚           โ”œโ”€โ”€ gitsigns.lua
โ”‚           โ”œโ”€โ”€ indent-blankline.lua
โ”‚           โ”œโ”€โ”€ init.lua     # Plugin module loader
โ”‚           โ”œโ”€โ”€ linting.lua
โ”‚           โ”œโ”€โ”€ lsp
โ”‚           โ”‚   โ”œโ”€โ”€ lspconfig.lua
โ”‚           โ”‚   โ””โ”€โ”€ mason.lua
โ”‚           โ”œโ”€โ”€ lualine.lua
โ”‚           โ”œโ”€โ”€ nvim-cmp.lua
โ”‚           โ”œโ”€โ”€ nvim-cpp.lua # C++ specific settings
โ”‚           โ”œโ”€โ”€ nvim-tree.lua
โ”‚           โ”œโ”€โ”€ substitute.lua
โ”‚           โ”œโ”€โ”€ surround.lua
โ”‚           โ”œโ”€โ”€ telescope.lua
โ”‚           โ”œโ”€โ”€ todo-comments.lua
โ”‚           โ”œโ”€โ”€ treesitter.lua
โ”‚           โ”œโ”€โ”€ trouble.lua
โ”‚           โ”œโ”€โ”€ vim-maximizer.lua
โ”‚           โ””โ”€โ”€ which-key.lua
โ””โ”€โ”€ README.md

โŒจ๏ธ Key Features and Plugins

Core Experience

User Interface

Development Tools

Editing Enhancements

Language-Specific Support

  • Custom C++ Configuration - Enhanced support for C++ development

๐ŸŽฎ Default Keymaps

Key Binding Mode Description
<Space> Normal Leader key
jk Insert Escape to Normal mode
<C-s> Normal/Insert Save file
<C-h/j/k/l> Normal Navigate between windows
<leader>e Normal Toggle file explorer
<leader>ff Normal Find files
<leader>fg Normal Live grep
<leader>fb Normal Find buffers
<leader>ca Normal Code actions
<leader>nh Normal Clear search highlights
<leader>m Normal Maximize current window

Note: This is just a subset of available keymaps. Use <leader>? to see all key bindings.

๐Ÿ”ง Customization

This configuration is designed to be easily customizable:

  1. Modify core settings in lua/ankit/core/options.lua
  2. Change keymappings in lua/ankit/core/keymaps.lua
  3. Add or remove plugins by editing files in the lua/ankit/plugins/ directory
  4. Adjust LSP settings in lua/ankit/plugins/lsp/

๐Ÿค Contributing

Contributions are welcome! Feel free to submit a pull request or open an issue.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgements

  • Josean Martinez's Neovim Tutorial - This configuration is largely based on this excellent guide
  • Neovim - The future of Vim
  • All the amazing plugin authors
  • The Neovim community for inspiration and support

Crafted with โค๏ธ by ankit02327

About

A clean and modular Neovim configuration featuring custom plugins, Lua-based setup, and a personalized development environment.

Topics

Resources

License

Contributing

Stars

3 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages