A well structured NeoVim configuration packed with features.
This configuration can serve as a starting point if you want to build your own personal configuration. Well documented, at the top of each file you can find a frontmatter which provides information.
![Screenshot 2023-10-16 at 01 12 51](https://private-user-images.githubusercontent.com/128804/275398293-d43af1e7-4e7a-4bdf-a300-9c068fef6b07.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1OTYyMjEsIm5iZiI6MTczOTU5NTkyMSwicGF0aCI6Ii8xMjg4MDQvMjc1Mzk4MjkzLWQ0M2FmMWU3LTRlN2EtNGJkZi1hMzAwLTljMDY4ZmVmNmIwNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNVQwNTA1MjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01NjYzZDEwMWMxZWUzZGNkYzZjNDgwZGU3NzkxYjAyNGMxMDkxYTkxMDk1ZjFmOTQ3MjI0YjQ2M2Q1MGZhNWM1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.d3g6nXg_KMKmv6QFp3QXPEuRVzF2Ae9foIS3to5Ms3g)
![Screenshot 2023-10-16 at 01 12 28](https://private-user-images.githubusercontent.com/128804/275398470-63d120fc-162c-461d-94aa-4a32be9c0edd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1OTYyMjEsIm5iZiI6MTczOTU5NTkyMSwicGF0aCI6Ii8xMjg4MDQvMjc1Mzk4NDcwLTYzZDEyMGZjLTE2MmMtNDYxZC05NGFhLTRhMzJiZTljMGVkZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNVQwNTA1MjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jNDkzMGVlNDFmODA3MjNjMzgwZjQzZDY3MTAzMzk5YjJmYTlhM2IzNDRhNTYzZjI3NjAwZmQwYWQ1NTg1NzFiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.vqw85leBNvEOeIniqBxWWMIX2Lvt06anjDjcIzs0V0I)
![Screenshot 2023-10-16 at 01 16 25](https://private-user-images.githubusercontent.com/128804/275398851-a070f5e7-b938-40ac-be09-9bc070a85fcc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1OTYyMjEsIm5iZiI6MTczOTU5NTkyMSwicGF0aCI6Ii8xMjg4MDQvMjc1Mzk4ODUxLWEwNzBmNWU3LWI5MzgtNDBhYy1iZTA5LTliYzA3MGE4NWZjYy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNVQwNTA1MjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02MjcxNTdjYjY3YWJiNTBlMjZiMjlmMDc0MjAyMThhM2NhNjUxODQwNTI3Y2NhNmUxYzEzMjAwMzE4OTI2NjM3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.tBqXnElNMkF47KG0Q_CfuvSzuXBOHaXdau_PnPxfjA8)
![Screenshot 2023-10-16 at 01 16 37](https://private-user-images.githubusercontent.com/128804/275398871-6070b19f-f0e8-42f0-ba67-b6dfa2b3c515.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1OTYyMjEsIm5iZiI6MTczOTU5NTkyMSwicGF0aCI6Ii8xMjg4MDQvMjc1Mzk4ODcxLTYwNzBiMTlmLWYwZTgtNDJmMC1iYTY3LWI2ZGZhMmIzYzUxNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNVQwNTA1MjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04OTc1NGZjMmNiNDc3YTk0NWVjMjEwYjRhNzc4OTI1MWQ0OWI5YzMyOTUyMmIyYzM1NDNlMWU0YzFkY2Y3NDAyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.npYLpLFrfnjddNvljF3WKqZH1dtOqKykkv8gxhLB8Yg)
![Screenshot 2023-10-16 at 01 11 02](https://private-user-images.githubusercontent.com/128804/275398318-4fa9c959-46b9-4133-9058-0df3612af1ec.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1OTYyMjEsIm5iZiI6MTczOTU5NTkyMSwicGF0aCI6Ii8xMjg4MDQvMjc1Mzk4MzE4LTRmYTljOTU5LTQ2YjktNDEzMy05MDU4LTBkZjM2MTJhZjFlYy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNVQwNTA1MjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yODExMmQ1ODJjOTMxMzk5ZDM1OTM4ODBhODAzMjdjNTU5MDA0YmE5MTc0ZTAwODBjYzc2YjRiYWRlNzUyODNiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ksF1TTGqZ3dGGk4dWLGaQgLItt4KxFVgwbkIFCNulQ0)
.
├── init.lua -- Entry point
│
├── lua
│ ├── config -- User configuration
│ │ ├── options.lua -- NeoVim options
│ │ └── keymaps.lua -- General keybindings
│ │ └── icons.lua -- Icons definitions
│ │
│ ├── core -- Plugin management
│ │ ├── hotspot.lua -- Hotpot compiler (to write your plugins in Fennel)
│ │ └── lazy.lua -- Plugin manager
│ │ └── loader.lua -- Plugin loader
│ │
│ ├── modules -- Plugins organized in modules
│ │ ├── code/ -- Code related plugins
│ │ ├── completion/ -- Code completion plugins
│ │ ├── debugger/ -- Debugger related plugins
│ │ ├── editor/ -- Plugins to enhance edition experience
│ │ ├── lang/ -- Programming languages specific plugins
│ │ ├── lsp/ -- Language servers support
│ │ ├── term/ -- Terminal plugins
│ │ ├── tools/ -- Various utilities
│ │ ├── ui/ -- Plugins for better user experience
The following tools are required for the plugins to work properly and provide the best experience:
- npm
- fzf: CLI Fuzzy finder
- sad: CLI search and replace
- fd: Modern find alternative
- lazygit: Git TUI
- delta: Syntax highlighting pager for git, diff and grep
- ripgrep: Grep on steroids
- nvim-autopair: Autopairs with support for multiple chars
- nvim-ts-autotag: Autoclose and autorename tags
- nvim-colorizer: Color highlighter
- Comment: Operator to toggle comments
- rainbow-delimiters: Rainbow delimiters using treesitter
- nvim-treesitter-context: Code context
- trouble.nvim: Pretty diagnostics
- gitsigns: Git gutter decorations
- vim-illuminate: Automatic highlighting of word under cursor
- indent-blankline: Ident guides
- neotest: Framework for interacting with tests
- nvim-surround: Surrounding delimiters with ease
- nvim-cmp: Completion engine
- nvim-dap: Debug adapter protocol client
- nvim-dap-ui: UI for nvim-dap
- mason-nvim-dap: Install debug adapters with Mason
- cmp-dap: Completion source for nvim-dap
- vim-abolish: Work with variants of a word
- better-escape: Quick escape from insert mode
- beacon: Flash cursor on jump
- nvim-ufo: Modern looking folds
- range-highlight: Automatically highlight ranges
- relative-toggle: Automatic toggle to relative line numbers
- vim-repeat: Extended usage of repeat (.) command
- sad: Search and replace
- unimpaired: Pairs of useful mappings
- nvim-lspconfig: Quickstart LSP configs
- lspsaga: Improved LSP experience
- null-ls: Inject LSP diagnostics
- lspkind: Icons for completion menu
- toggleterm: Terminal window
- vim-tmux-navigator: Seamless navigation between tmxux and neovim
- telescope: Fuzzy finder
- telescope-file-browser: Filebrowser extension for Telescope
- tree-sitter: Syntax highlighter
- targets: Additional targets from text objects
- nvim-tree: File explorer
- project: Project management
- persisted: Automated session management
- mason: Package manager for lsp and dap servers
- overseer: Task runner and job manager
- catppuccin: Catppuccin theme
- alpha: Start screen
- nvim-web-devicons: Additional icons
- dressing: Improved vim.ui interfaces
- statuscol: Configurable status column with click handlers
- which-key: Keymap help
- notifier: Non intrusive notification system
- noice: Replacement for command line
- lualine: Configurable statusline
- nvim-pqf: Prettier QuickFix list
- bufferline: Snazzy bufferline