Welcome to my personal NeoVim dotfiles repository, specifically tailored for infrastructure development. This configuration is designed for NeoVim 0.10, enhancing the development experience by streamlining workflows and incorporating productivity-boosting features tailored to infrastructure as code (IaC). While optimized for NeoVim 0.10, experience with other versions may vary. Built with lazy.nvim
and mason
for efficient plugin management, it aims to provide a powerful, flexible, and visually pleasing coding environment.
- Effortless Plugin Management: Powered by
lazy.nvim
and Mason, enabling automatic installation and updates of plugins, formatters and LSPs. - Custom Keybindings: Intuitive shortcuts to improve navigation and editing efficiency, discoverable with whichkey.
- Enhanced Language Support: Default support for Terraform and Golang, essential for infrastructure development, along with YAML and JSON validation tools to ensure configuration integrity.
- Gruvbox Theme: Utilizes the popular gruvbox theme for a warm, eye-friendly color scheme that's easy on the eyes during long coding sessions.
- Minimalist Aesthetic: A clean and minimalist interface with no status line, using noice and telescope for user interface, focusing on maximizing screen real estate and reducing distractions.
- Performance Optimized: A fast and responsive configuration, ensuring minimal startup time and smooth operation.
-
Backup Your Current Configuration (Optional): To safeguard your existing setup, consider backing it up before proceeding.
mv ~/.config/nvim ~/.config/nvim.backup
-
Clone the Repository: Get the configuration by cloning this repository into your
.config/nvim
directory.git clone https://github.com/taihen/neovim-dotfiles.git ~/.config/nvim
-
Initial Setup with LazyNvim: On launching NeoVim,
lazy.nvim
will install specified plugins. No additional installation steps are required. Treesitter language definitions, formatters, linters will be installed dynamically.
Utilities installed with lazy.vim
and mason
also have dependencies, which
have to be managed outside of the NeoVim configuration.
In particular:
- Node.js and npm: For JavaScript/TypeScript plugins and tools.
- Python3: Required by several Python-related plugins.
- Rust and Cargo: For Rust development and Rust-based plugins.
- GoLang: For Go development and Go-based plugins.
Feel free to modify and customize the configuration to suit your preferences. The init.lua
file is the starting point, but most of the configuration is in ./lua/
where you can change key mappings, themes, and plugins.
Contributions are welcome! If you have improvements or corrections, please fork the repository, commit your changes, and submit a pull request.
This NeoVim configuration is released under the [MIT license].