My personal Neovim configuration built with Lua.
This configuration aims to provide a pleasant and productive Neovim experience with features such as:
- LSP Support: Integration with Language Server Protocol for code completion, diagnostics, and more.
- Autocompletion: Enhanced autocompletion powered by
nvim-cmp
. - Treesitter: Syntax highlighting and code folding using
nvim-treesitter
. - Fuzzy Finding: Fast file and buffer searching with
telescope.nvim
. - Aesthetics: A clean and modern UI with custom colorscheme support.
- Code Generation & Completion: AI powered code companion with NeoCodeium and Avante.
- File Management: Easy file browsing with
nvim-tree.lua
. - Statusline: Rich statusline powered by
lualine.nvim
. - Format on Save: Auto formatting with
format-on-save.nvim
. - Tabline: Enhanced tab line using
nvim-cokeline
. - Terminal Management: Integrated terminal management with
toggleterm.nvim
. - Markdown Preview: Native Markdown preview with
Peek.nvim
.
- Neovim v0.9+
- Node.js (for some LSP servers and tools)
- Python 3 (for some LSP servers and tools)
ripgrep
(fortelescope.nvim
)- A Nerd Font (
https://www.nerdfonts.com/
)
-
Clone this repository:
git clone <repository_url> ~/.config/nvim
-
Start Neovim. Lazy.nvim will automatically install the plugins.
nvim
-
If the plugins don't install automatically, run
:Lazy sync
in Neovim.
dakai-.nvim/
├── init.lua -- Main entry point, loads all other modules
├── after/
│ └── plugin/ -- Plugin configurations
└── lua/ -- Lua modules
├── autocmds.lua -- Autocommand definitions
├── base.lua -- Basic settings and options
├── highlights.lua -- Custom highlight definitions
├── maps.lua -- Key mappings
├── plugins.lua -- Plugin definitions using lazy.nvim
└── statusline.lua -- Statusline configuration
-
init.lua
: This is the main entry point for the Neovim configuration. It loads all other modules, effectively setting up the entire environment. -
lua/base.lua
: Contains basic settings and options for Neovim, such as enabling line numbering, setting the encoding, and configuring indentation. -
lua/highlights.lua
: Defines custom highlight groups and sets terminal colors. -
lua/maps.lua
: Configures key mappings for various actions, such as saving files, moving windows, and searching. -
lua/plugins.lua
: Sets up plugins usinglazy.nvim
. This file specifies each plugin to install, along with any configuration options. -
lua/autocmds.lua
: Defines custom autocommands for tasks like auto-formatting YAML files on save. -
lua/statusline.lua
: Configures the statusline using Lua, displaying information such as file name, diagnostics, and cursor position. -
after/plugin/*.rc.lua
: These files configure individual plugins after they are loaded.
Here are some important key mappings:
<Space>w
: Save the current file.<Space>q
: Delete current buffer or exit nvim if only one buffer. RequiresDelete_buffer_or_exit
function inmap.lua
.<Space>n
: Toggle thenvim-tree
file explorer.<Space>m
: Native Markdown preview.<Space>s
: Telescope smart open.<Space>t
: Telescope smart open in current working directory.<Space>g
: Telescope live grep.<Space>b
: Telescope buffers.<Space>h
: Telescope help tags.<Space>r
: Telescope resume.<Space>e
: Telescope diagnostics.<Space>d
: Todo Telescope.<Space>p
: Telescope repo List.gw
: ChatGPT diagnostics.;aa
: Avante.nvim Panel
Feel free to customize this configuration to your liking by modifying the files in the repository.