- Neovim (v0.8+)
- ripgrep - Required for FzfLua live grep
- fd - (Optional) Faster alternative to
find
for FzfLua - nerd-fonts - Required for icons in NvimTree
This configuration uses lazy.nvim as the plugin manager. Lazy.nvim will be automatically installed on first startup.
- Clone this repository.
- Link the
init.lua
andlua
directory to the Neovim configuration directory, usually~/.config/nvim
.
ln -s $PWD/init.lua ~/.config/nvim/init.lua
ln -s $PWD/lua ~/.config/nvim/lua
- Start Neovim - lazy.nvim will automatically bootstrap and install all plugins.
- Optionally run
:Lazy
to open the plugin manager interface.
Keybinding | Description |
---|---|
[n] <leader> |
\ |
[n] <leader>ff |
FzfLua find files |
[n] <leader>fg |
FzfLua live grep |
[n] <leader>fb |
FzfLua buffers |
[v] <C-f> |
FzfLua live grep selection |
[n] <C-r> |
FzfLua resume |
[n] <C-,> |
Buffer previous |
[n] <C-.> |
Buffer next |
[n] <C-p> |
Buffer pick |
[n] <C-e> |
NvimTree toggle |
[n] <leader>nf |
NvimTree find file |
[n] <leader>nc |
NvimTree collapse |
[n] <leader>p |
Format with conform.nvim |
[n] <leader>e |
Open diagnostics float |
[n] <leader>xx |
Trouble diagnostics toggle |
[n] <leader>xX |
Trouble diagnostics toggle (current buf) |
[n] <leader>zR |
UFO Open all folds |
[n] <leader>zM |
UFO Close all folds |
Run :Copilot setup
to configure Copilot.
Additional AI plugins are available but currently commented out:
- Avante: AI coding assistant with Claude/OpenAI integration
- MCPHub: Model Context Protocol server integration
To enable: uncomment the plugin specs in lua/plugins.lua
and configure as needed.
This configuration uses Mason for automatic LSP server management. Configured language servers include:
- TypeScript/JavaScript:
ts_ls
(formerly tsserver) - Python:
pyright
- Go:
gopls
- Lua:
lua_ls
- HTML:
html
- CSS:
cssls
LSP servers are automatically installed and configured through Mason. For more server configurations, see the nvim-lspconfig documentation.
- plenary.nvim - Lua utility functions
- nvim-web-devicons - File type icons
- dashboard-nvim - Startup dashboard
- lualine.nvim - Status line
- tokyonight.nvim - Tokyo Night color scheme
- nvim-tree.lua - File explorer
- barbar.nvim - Buffer tabs
- dressing.nvim - UI improvements
- nui.nvim - UI components
- fzf-lua - Fast and powerful file finder and grep
- nvim-lspconfig - LSP configurations
- mason.nvim - LSP server manager
- mason-lspconfig.nvim - Mason integration
- nvim-cmp - Completion engine
- cmp-nvim-lsp - LSP completion source
- cmp-buffer - Buffer completion
- cmp-path - Path completion
- cmp-cmdline - Command line completion
- cmp-vsnip - Snippet completion
- vim-vsnip - Snippet engine
- vim-vsnip-integ - Snippet integration
- vim-fugitive - Git commands
- gitsigns.nvim - Git signs in gutter
- nvim-treesitter - Syntax highlighting
- nvim-autopairs - Auto-close brackets
- Comment.nvim - Commenting utility
- nvim-lint - Auto-linting with external tools
- mason-nvim-lint - Auto-install linters through Mason
- conform.nvim - Code formatting
- neoscroll.nvim - Smooth scrolling
- nvim-notify - Notification system
- todo-comments.nvim - TODO highlighting
- trouble.nvim - Diagnostics panel
- nvim-ufo - Folding enhancement
- promise-async - Async utilities
- statuscol.nvim - Status column
- grug-far.nvim - Search and replace
- vim-startuptime - Startup time profiling
- github/copilot.vim - GitHub Copilot
nvim-config/
├── init.lua # Entry point, bootstraps lazy.nvim and loads modules
├── lua/
│ ├── globals.lua # Global variables and aliases
│ ├── settings.lua # Neovim settings and options
│ ├── keybindings.lua # Custom keybindings
│ ├── plugins.lua # Plugin definitions with lazy.nvim
│ └── configs/ # Individual plugin configurations
│ ├── conform.lua
│ ├── dashboard-nvim.lua
│ ├── lazy.lua
│ ├── lsp.lua
│ ├── neoscroll.lua
│ ├── nvim-cmp.lua
│ ├── nvim-lint.lua
│ ├── mason-nvim-lint.lua
│ ├── nvim-tree.lua
│ ├── nvim-treesitter.lua
│ ├── statuscol.lua
│ └── ufo.lua
└── assets/
└── preview.png
WezTerm with Tokyo Night Moon color scheme:
config.color_scheme = 'Tokyo Night Moon'
For more information, see the WezTerm configuration documentation.