An open API service indexing awesome lists of open source software.

https://github.com/hex01e/neovim-conf

A modern, fast, and extensible Neovim config written in Lua. Powered by lazy.nvim, with LSP, Treesitter, Telescope, Git integration, and Catppuccin theme out of the box.
https://github.com/hex01e/neovim-conf

config configuration lazy-nvim lsp lua neovim nvim telescope vim

Last synced: 2 months ago
JSON representation

A modern, fast, and extensible Neovim config written in Lua. Powered by lazy.nvim, with LSP, Treesitter, Telescope, Git integration, and Catppuccin theme out of the box.

Awesome Lists containing this project

README

          

## My Personnel Neovim config
A fast, batteries-included Neovim setup powered by lazy.nvim. It ships with LSP, Treesitter, Telescope, Git integration, statusline, notifications, a start screen, and sensible defaults.

## Requirements

- Neovim ≥ 0.9
- Git
- Recommended: ripgrep (`rg`) for Telescope live grep
- Optional: Node.js, Python, and/or system tools your languages require

## Screenshots


Screenshot 1
Screenshot 2
Screenshot 3
Screenshot 4

## Installation

```bash
# Back up your current config
mv ~/.config/nvim ~/.config/nvim.bak-$(date +%F)

# Clone this config
git clone https://github.com/hex01e/neovim-conf ~/.config/nvim

# Start Neovim (plugins will auto-install on first launch)
nvim
```

- Plugin manager lazy.nvim bootstraps automatically on first run (no manual steps needed).
- After install completes, restart Neovim.

## Layout

```
~/.config/nvim
├─ init.lua
├─ lua/
│ ├─ config/
│ │ ├─ options.lua # Core editor options
│ │ ├─ lazy.lua # lazy.nvim bootstrap & setup
│ │ └─ keymaps.lua # Centralized custom key mappings
│ └─ plugins/ # Plugin specs (lazy.nvim)
```

## Included plugins (highlights)

- UI: `catppuccin/nvim` (colorscheme), `nvim-lualine/lualine.nvim`, `rcarriga/nvim-notify`, `goolord/alpha-nvim`, `folke/which-key.nvim`
- Editing: `echasnovski/mini.pairs`, `folke/ts-comments.nvim`, `mg979/vim-visual-multi`
- Navigation/Search: `nvim-telescope/telescope.nvim` (+ ui-select), `nvim-neo-tree/neo-tree.nvim` (+ window-picker)
- Treesitter: `nvim-treesitter/nvim-treesitter`
- LSP: `mason.nvim`, `mason-lspconfig.nvim`, `neovim/nvim-lspconfig`, `j-hui/fidget.nvim`
- Git: `tpope/vim-fugitive`, `lewis6991/gitsigns.nvim`
- Formatting/Linting: `nvimtools/none-ls.nvim` (+ `mason-null-ls.nvim`)

## LSP servers ensured

Via `mason-lspconfig` ensure_installed:
- lua_ls, pyright, ts_ls, ruff, html, cssls

Open Mason UI with:
```vim
:Mason
```

## Formatters/linters (none-ls)

- Formatters: black, isort, stylua, prettierd
- Diagnostics: stylelint
- Auto-install for supported tools is enabled via mason-null-ls

## Key mappings (essentials)

- Leader is space: ``
- Custom mappings live in `lua/config/keymaps.lua`.

- Telescope
- `ff`: Find files
- `fg`: Live grep
- `fb`: Buffers
- `fh`: Help tags

- File explorer (Neo-tree)
- ``: Toggle file explorer
- `w`: Pick window

- LSP
- `gd/gD/gi/gr`: Go to definition/declaration/implementation/references
- `K`: Hover
- `rn`: Rename
- `ca`: Code action
- `dp` / `dn`: Prev/Next diagnostic
- `F`: Format buffer

- Completion (nvim-cmp)
- `/`: Scroll docs
- ``: Trigger completion
- ``: Abort
- ``: Confirm selection

- Git (gitsigns)
- `]c` / `[c`: Next/Prev hunk
- `hs` / `hr`: Stage/Reset hunk
- `hS` / `hR`: Stage/Reset buffer
- `hp`: Preview hunk
- `hi`: Preview hunk inline
- `hb`: Blame line (full)
- `hd` / `hD`: Diff this / diff against HEAD~
- `hQ` / `hq`: QF list (all/buffer)
- `tb`: Toggle line blame
- `tw`: Toggle word diff

- Terminal (floaterm)
- `t`: Toggle the terminal window

## Editor options (notable)

- Tabs (no expand): `tabstop=2`, `shiftwidth=2`, `expandtab=false`
- Numbers: `number` and `relativenumber`
- UI: `cursorline`, `nowrap`

## Commands you’ll use

- Plugin UI: `:Lazy`
- LSP info: `:LspInfo`
- Mason UI: `:Mason`
- Treesitter update: `:TSUpdate`

## Troubleshooting

- First launch installs plugins. If something fails, run `:Lazy sync` then restart.
- Ensure `rg` is installed for live grep: `sudo apt install ripgrep` (Debian/Ubuntu) or your OS equivalent.
- For language tools (formatters/linters), open `:Mason` to install missing binaries.
- Check health: `:checkhealth`

## Customization

- Change options in `lua/config/options.lua`.
- Add or remove plugins by editing files in `lua/plugins/` or adding new ones.
- Colorscheme is set in `lua/plugins/cappuccin.lua` (change or disable as desired).

## Credits

Built with lazy.nvim and an excellent Neovim plugin ecosystem.