A very fast Lua based Neovim configuration that uses native LSP for intellisense.
Launch time: ~60ms
This is a configuration for Neovim. It's written in Lua, and uses modern plugins like Treesitter, Telescope, and Blink for completion. It uses the native Neovim LSP with Mason for managing language servers. It's very fast, minimal, and focused on essential features for productive coding.
- Fast Completion: Uses Blink.cmp with Rust-based fuzzy matching for blazing fast completions
- LSP Integration: Native Neovim LSP with Mason for easy language server management
- Smart Formatting: Auto-format on save with Conform.nvim supporting multiple formatters
- Git Integration: Gitsigns for inline git blame, diff viewing, and hunk management
- Fuzzy Finding: Telescope with Ivy theme for finding files, grepping, and more
- Smart Editing: Auto-pairs, auto-tags, context-aware commenting, and surround operations
- File Navigation: Oil.nvim for buffer-like file exploration
- TypeScript Enhanced: Dedicated TypeScript tools with auto-import support
- Minimal UI: Clean interface with Which-key for discoverable keybindings
- blink.cmp - Fast completion plugin with LSP support
- conform.nvim - Formatter plugin
- friendly-snippets - Snippet collection
- gitsigns.nvim - Git decorations
- mason-lspconfig.nvim - Mason integration for LSP
- mason.nvim - Package manager for LSP servers, formatters, and linters
- nvim-autopairs - Auto-close brackets and quotes
- nvim-lspconfig - LSP configuration
- nvim-surround - Manipulate surrounding characters
- nvim-treesitter - Syntax highlighting and parsing
- nvim-ts-autotag - Auto-close HTML/JSX tags
- nvim-ts-context-commentstring - Context-aware commenting
- oil.nvim - File explorer
- plenary.nvim - Lua utility library
- telescope.nvim - Fuzzy finder
- typescript-tools.nvim - Enhanced TypeScript support
- vim-rhubarb - GitHub integration for fugitive
- vim-sleuth - Auto-detect indentation
- which-key.nvim - Keybinding popup
- Neovim 0.9 or above
- Git for version control features
- ripgrep for Telescope live grep
- Node.js for many LSP servers and formatters
- A Nerd Font for icons (optional but recommended)
Ghostty - A fast, feature-rich, and cross-platform terminal emulator
If you want to receive updates as this configuration gets patched, then clone
this repository into your .config directory, or wherever you keep your
current Neovim configuration.
git clone https://github.com/albingroen/quick.nvim.git
On the other hand, if you want a raw folder with the configuration files, without git connected to it, you can head over to the releases page, and download a release from there.
https://github.com/albingroen/quick.nvim/releases
To install the plugins used by quick.nvim, you need to do so using Lazy.
nvim ~/.config/nvim/init.lua
:Lazy sync
You can install language servers, formatters, and linters by running :Mason.
Here are the recommended installations:
These are the language servers I use. Obviously, feel free to install whichever ones you want.
- lua-language-server (lua_ls)
- pyright (Python)
- eslint-lsp (eslint)
- stylelint-lsp (stylelint_lsp)
- tailwindcss-language-server (tailwindcss)
- prettierd (JavaScript/TypeScript/HTML/CSS/JSON)
- stylua (Lua)
Note: The configuration uses typescript-tools.nvim for TypeScript/JavaScript language
server support with enhanced features like auto-import, so you don't need to install
typescript-language-server separately.
Leader key is set to Space.
<Space>?- Show buffer-local keymaps (which-key)<C-S>- Start search and replace<C-h/j/k/l>- Navigate between splits
-- Open Oil file explorer (parent directory)<Space>f- Find files (Telescope)<Space>s- Live grep (search text in files)<Space>w- Grep word under cursor<Space>b- Show buffers<Space>c- Resume last Telescope search<Space>z- Fuzzy find in current buffer
gd- Go to definitiongr- Go to references<Space>rn- Rename symbol<Space>.- Code actions<Space>i- Add missing imports (TypeScript)<Space>e- Show diagnostics for current line<Space>d- Show all diagnostics
]c/[c- Next/previous hunk<Space>hs- Stage hunk<Space>hr- Reset hunk<Space>hS- Stage buffer<Space>hR- Reset buffer<Space>hp- Preview hunk<Space>hb- Blame line<Space>hd- Diff this<Space>tb- Toggle line blame<Space>gb- Git branches (Telescope)<Space>gc- Git commits (Telescope)
tn- New tabtk/tj- Next/previous tabto- Close other tabssp- Horizontal splitvs- Vertical split<Space>o- Close all other tabs and windows
<Space>j- Next quickfix item<Space>k- Previous quickfix item