A minimal, fast Neovim configuration with on-demand Python type checking and LSP features.
This config prioritizes speed by disabling heavy features by default. Everything can be toggled on when needed:
- Type annotations (inlay hints)
- Error checking (diagnostics)
- Auto-completion
- Linting/formatting
- Plugin Manager: vim-plug (lightweight and fast)
- LSP Support: Native nvim-lspconfig with basedpyright for Python, tsserver for TypeScript/JavaScript
- Fuzzy Finding: fzf integration
- Linting: ALE with black/ruff for Python, prettier for TypeScript/JavaScript
- Colorscheme: Gruvbox dark
- Languages: Python (with type hints), TypeScript/JavaScript (with type hints), Elixir
Leader key is set to <Space>.
<Space>ti- Toggle inlay hints (type annotations)<Space>td- Toggle diagnostics (errors/warnings)<Space>tc- Toggle completion<Space>ta- Toggle ALE linting
<C-p>- Fuzzy find files<C-j/k/h/l>- Window navigationgd- Go to definitiongr- Find referencesK- Show documentation<Space>rn- Rename symbol<Space>ca- Code actions
-
Install Neovim (0.8+ required for native LSP)
-
Clone this config:
git clone <your-repo-url> ~/.config/nvim
-
Install vim-plug:
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim -
Open Neovim and install plugins:
:PlugInstall
-
Install LSP servers:
:Mason
Then search for and install:
basedpyright(for Python)typescript-language-server(for TypeScript/JavaScript)
-
Install formatters (optional):
# Python formatters pip install black ruff # TypeScript/JavaScript formatter npm install -g prettier
- Open a Python or TypeScript file
- Code is fast by default (no heavy features running)
- When you need type checking:
- Press
<Space>tito see type annotations - Press
<Space>tdto see errors - Press
<Space>tcfor auto-completion
- Press
- Toggle features off when done to maintain speed
The same shortcuts work for both Python and TypeScript!
- Neovim 0.8+
- Git
- fzf
- ripgrep (for better searching)
- Python 3.x (for Python development)
- Node.js (for LSP servers via Mason)
- Fast: Everything heavy is off by default
- Minimal: Only essential plugins
- Modern: Uses Neovim's native LSP
- Flexible: Toggle features on demand
Perfect for developers who want a fast editor that can become powerful when needed.