My personal Neovim configuration that shouldn't break often.
- 🚀 Fast and lightweight setup
 - 🔍 LSP support for multiple languages (TypeScript, Go, Python, Lua, etc.)
 - 🎨 Beautiful UI with Rose Pine theme
 - 📝 Intelligent auto-completion with nvim-cmp
 - 🔧 Git integration with gitsigns
 - 🔍 Fuzzy finding with Telescope
 - 🌳 File navigation with Nvim-tree and Harpoon
 - 📦 Formatting with conform.nvim
 
# Clone this repository to your Neovim config directory
git clone [email protected]:khoaHyh/nvim-config.git ~/.config/nvimIf you have your own dotfiles directory and would like to maintain a copy of your config while also using it, you can use a symbolic link:
ln -s /path/to/target_directory /path/to/symlink_directory
# Example: here the original directory lives at ~/dev/dotfiles/.config/nvim 
# and we are creating a symbolic link at the path ~/.config/nvim
ln -s ~/dev/dotfiles/.config/nvim ~/.config/nvimSpace is used as the leader key. Some useful key mappings include:
<Space>f- Find files with Telescope<Space>F- Live grep with Telescope<Space>e- Toggle Nvim-tree file explorer<C-h/j/k/l>- Navigate between windows<C-Up/Down/Left/Right>- Resize windows<S-h/l>- Navigate between buffers<Space>a- Add file to Harpoon<Space>h- Toggle Harpoon menu
The configuration uses lazy.nvim for plugin management with a modular structure:
~/.config/nvim/
├── init.lua                 # Main configuration
├── lua/
│   ├── config/              # Configuration modules
│   │   ├── keymaps.lua      # Key mappings
│   │   ├── completion.lua   # Completion setup
│   │   └── snippets.lua     # Snippet configuration
│   ├── lazy-config.lua      # Lazy.nvim bootstrap
│   └── plugins/             # Plugin configurations
       ├── init.lua          # Core plugins
       ├── bufferline.lua    # Buffer line config
       ├── comments.lua      # Comments plugin
       ├── conform.lua       # Formatting setup
       ├── lsp.lua           # LSP configuration
       └── ...               # Other plugin configs
Key plugins included in this configuration:
- Lazy.nvim - Plugin manager
 - Telescope - Fuzzy finder
 - Nvim-tree - File explorer
 - Nvim-lspconfig - LSP configuration
 - Nvim-cmp - Completion engine
 - Treesitter - Better syntax highlighting
 - Harpoon - Quick file navigation
 - Conform.nvim - Code formatting
 - Gitsigns - Git integration
 - Rose Pine - Main colorscheme
 
To customize the configuration:
- Modify options in 
init.lua - Change keymappings in 
lua/config/keymaps.lua - Add or remove plugins by editing files in the 
lua/plugins/directory - The project root 
init.luais where you can set your desired colorscheme. You'll need to install the colorscheme plugin and initialize it atlua/plugins/init.lua. 
- Neovim 0.9.0 or later
 - Git
 - A Nerd Font (for icons)
 - Language servers for the languages you work with
 
Language servers are configured in lua/plugins/lsp.lua. The configuration uses Mason for easy installation of LSP servers. Open Neovim and run:
:Mason
Then install the language servers you need.
For text folding, syntax highlighting, text-object manipulating and other parsing functions you'll want to do a :TSInstall languageOfYourChoice for each langauge you'll be using.