Neovim + NvChad
A fully configured Neovim setup optimized for Termux on Android. Pre-configured language servers, AI assistants, code formatters, and a beautiful UI.
core install editorFeatures
AI Integration
Copilot + CodeCompanion w/ Mistral, OpenAI & Anthropic
LSP Support
20+ languages with lazy on-demand installation
Code Formatting
Prettier, stylua, shfmt, pg_format, black, gofmt, rustfmt
Telescope
Fuzzy finder for files, text, and buffers
Treesitter
Advanced syntax highlighting + incremental selection
Beautiful UI
Eldritch theme, lualine, bufferline, scrollbar
Auto-closing Tags
Auto close and rename HTML/JSX/TSX tags
Code Folding
nvim-ufo with treesitter & indent providers
Custom Snippets
HTML/JSX/TSX snippets via LuaSnip + friendly-snippets
Keybindings
Leader Key: Space
General
| Key | Mode | Description |
|---|---|---|
; | Normal | Enter command mode |
jk | Insert | Exit insert mode |
<Space> | Normal | Leader key |
Line Movement
| Key | Mode | Description |
|---|---|---|
<A-j> | Normal/Insert | Move line down |
<A-k> | Normal/Insert | Move line up |
<A-j> | Visual | Move selection down |
<A-k> | Visual | Move selection up |
Window Navigation
| Key | Mode | Description |
|---|---|---|
<S-h> | Normal | Go to left split / Previous buffer |
<S-l> | Normal | Go to right split / Next buffer |
<S-j> | Normal | Go to bottom split |
<S-k> | Normal | Go to top split |
<leader>sv | Normal | Split vertically |
<leader>sh | Normal | Split horizontally |
<leader>sq | Normal | Close current split |
<leader>so | Normal | Close other splits |
Code Formatting
| Key | Mode | Description |
|---|---|---|
<leader>fm | Normal | Format file with Prettier/conform.nvim |
<leader>fs | Normal | Format Bash script with shfmt |
<leader>fq | Normal | Format SQL with pg_format |
AI Assistants
| Key | Mode | Description |
|---|---|---|
<leader>aa | Normal/Visual | CodeCompanion: Open chat |
<leader>ai | Normal/Visual | CodeCompanion: Transform/create inline code |
<leader>at | Normal | CodeCompanion: Toggle chat (show/hide) |
<leader>am | Normal | CodeCompanion: Actions menu |
<leader>as | Normal | CodeCompanion: Change adapter/provider |
GitHub Copilot (Insert Mode)
| Key | Mode | Description |
|---|---|---|
Ctrl+l | Insert | Accept suggestion |
Ctrl+j | Insert | Next suggestion |
Ctrl+k | Insert | Previous suggestion |
Ctrl+h | Insert | Dismiss suggestion |
Search & Navigation (Telescope)
| Key | Mode | Description |
|---|---|---|
<leader>ff | Normal | Find files |
<leader>fg | Normal | Live grep (search text) |
<leader>fb | Normal | Search buffers |
<leader>fh | Normal | Search help tags |
Diagnostics (LSP)
| Key | Mode | Description |
|---|---|---|
[d | Normal | Go to previous diagnostic |
]d | Normal | Go to next diagnostic |
<leader>e | Normal | Show diagnostic in floating window |
<leader>q | Normal | Open diagnostic location list |
Utilities
| Key | Mode | Description |
|---|---|---|
<leader>y | Normal | Yank entire file to clipboard |
<leader>sr | Normal | Reload configuration |
<leader>ch | Normal | Clear search highlight |
<leader>tw | Normal | Toggle line wrap |
<leader>tn | Normal | Toggle relative line numbers |
Code Folding
| Key | Mode | Description |
|---|---|---|
<leader>z | Normal | Toggle fold under cursor |
<leader>zR | Normal | Open all folds |
<leader>zM | Normal | Close all folds |
Autocompletion (Insert Mode)
| Key | Mode | Description |
|---|---|---|
Tab | Insert | Next completion item / Expand snippet |
Shift+Tab | Insert | Previous completion item |
Ctrl+Space | Insert | Manual trigger completion |
Enter | Insert | Confirm selection |
Ctrl+d | Insert | Scroll docs up |
Ctrl+f | Insert | Scroll docs down |
Language Support
| Language | LSP | Formatter | Features |
|---|---|---|---|
| JavaScript/TypeScript | ts_ls | Prettier | Autocompletion, diagnostics, inlay hints |
| HTML | html-lsp | Prettier | Auto-tags, completion |
| CSS/Tailwind | cssls | Prettier | Autocompletion, Tailwind support |
| Lua | lua-language-server | stylua | Autocompletion, diagnostics |
| Bash | bashls | shfmt | Shell formatting |
| Python | pyright | black | Autocompletion, diagnostics |
| Go | gopls | gofmt/goimports | Autocompletion, diagnostics |
| Rust | rust_analyzer | rustfmt | Autocompletion, diagnostics |
| C/C++ | clangd | clang-format | Autocompletion, diagnostics |
| PHP | intelephense | - | Autocompletion, diagnostics |
| Kotlin | kotlin_language_server | ktfmt | Autocompletion, diagnostics |
| C# | omnisharp | - | Autocompletion, diagnostics |
| YAML | yamlls | Prettier | Formatting |
| Dockerfile | dockerls | - | Diagnostics |
| SQL | sqls | pg_format | SQL formatting |
| JSON | - | Prettier | Formatting |
| Markdown | - | Prettier | Formatting |
Plugins
nvim-cmp
Intelligent autocompletion engine
LuaSnip
Snippet engine with HTML/JSX/TSX snippets
nvim-lspconfig
LSP configuration
mason.nvim
LSP installer
nvim-treesitter
Syntax highlighting and code navigation
nvim-treesitter-textobjects
Incremental selection
conform.nvim
Code formatter
copilot.vim
GitHub Copilot integration
codecompanion.nvim
Multi-provider AI chat assistant
telescope.nvim
Fuzzy finder for files and text
trouble.nvim
Diagnostic list viewer
lualine.nvim
Status bar
bufferline.nvim
Buffer tabs
indent-blankline.nvim
Visual indentation guides
nvim-notify
Beautiful notifications
which-key.nvim
Keybinding helper
nvim-ufo
Code folding with treesitter
nvim-scrollbar
Scrollbar with diagnostics/git indicators
nvim-web-devicons
File type icons
nvim-ts-autotag
Auto close HTML/JSX tags
symbols-outline.nvim
Symbols outline sidebar
friendly-snippets
Predefined snippets collection
mason-lspconfig.nvim
Mason-lspconfig bridge
Configuration Structure
nvim/
├── init.lua # Main entry, lazy.nvim bootstrap
├── lazy-lock.json # Plugin lockfile
├── lua/
│ ├── chadrc.lua # Theme & base46 settings
│ ├── mappings.lua # Custom keybindings
│ ├── options.lua # Neovim options + Termux TMPDIR fix
│ ├── configs/
│ │ ├── cmp.lua # Autocompletion config
│ │ ├── conform.lua # Code formatter config
│ │ ├── lazy.lua # lazy.nvim settings
│ │ ├── lspconfig.lua # Lazy LSP installer (on-demand)
│ │ ├── snippets.lua # HTML/JSX/TSX custom snippets
│ │ ├── ui.lua # UI central config
│ │ ├── formatters/
│ │ │ └── custom.lua # Custom formatter definitions
│ │ └── servers/
│ │ ├── cssls.lua # CSS language server
│ │ ├── eslint.lua # ESLint LSP
│ │ ├── html.lua # HTML language server
│ │ ├── tailwindcss.lua # Tailwind CSS language server
│ │ └── ts_ls.lua # TypeScript language server
│ └── plugins/
│ ├── init.lua # Plugin imports
│ ├── ai/ # AI plugins (Copilot, CodeCompanion)
│ ├── completion/ # Completion plugins (nvim-cmp, LuaSnip)
│ ├── formatting/ # Formatting plugins (conform.nvim)
│ ├── lsp/ # LSP plugins (lspconfig, mason, trouble, ufo, autotag)
│ └── ui/ # UI plugins (lualine, bufferline, notify, scrollbar)