Neovim Polyglot Configuration Documentation¶
A minimal, pragmatic Neovim (v0.11.4+) configuration optimized for Python-first workflows with polyglot support, featuring FZF integration, custom status line, lazy loading, and built-in LSP.
Getting Started
Usage Guide
- Keybindings
- Suggested Workflows
- Python Workflow
- LSP Features
- What is LSP?
- Zuban Language Server
- Activating LSP
- Hover Information
- Go to Definition
- Find References
- Code Completion
- Diagnostics
- Rename Refactoring
- Code Formatting
- Workspace Symbols
- Document Symbols
- Signature Help
- Configuration
- Type Checking
- Troubleshooting LSP
- Performance Tips
- LSP and Other Tools
- Keyboard Shortcuts Summary
- FZF Guide
- What is FZF?
- Why FZF?
- Finding Files
- Switching Buffers
- Searching Git Files
- Searching File Contents
- Searching in Selection
- Using FZF Preview
- FZF Keybindings
- FZF Search Syntax
- Common FZF Patterns
- Opening Files Multiple Ways
- Tips and Tricks
- Performance
- Customization
- FZF vs LSP Navigation
- Integration with Project
- Common Issues
- Keyboard Shortcuts Summary
Configuration
- Configuration Structure
- Directory Layout
- init.lua - Main Entry Point
- lua/settings.lua - Editor Settings
- lua/statusline.lua - Custom Status Line
- lua/autocmds.lua - Autocommands
- lua/lsp/ - Language Server Configuration
- lua/plugin/ - Plugin Configurations
- lua/utils/ - Utility Functions
- lua/disable_plugins.lua - Disable Built-ins
- install.py - Setup Script
- pyproject.toml - Python Dependencies
- How Files Work Together
- Understanding Dependencies
- Adding New Plugins
- Adding New Settings
- Modifying Keybindings
- File Naming Conventions
- Performance Considerations
- Extending the Configuration
- Backup and Version Control
- Debugging Configuration
- Customization
- Modifying Keybindings
- Changing the Leader Key
- Customizing Appearance
- Editing Python Configuration
- Adding a New Language Server
- Customizing FZF
- Adding Custom Functions
- Adding a Plugin
- Changing LSP Diagnostic Display
- Making Neovim Faster
- Customizing Text Wrapping
- Changing Font for Symbols
- Custom Autocommands
- Creating a Configuration Backup
- Reloading Configuration
- Testing Customizations
- Common Customization Patterns
- Troubleshooting Customizations
- Sharing Customizations
- Plugins Overview
- LSP Configuration
- Basic LSP Setup
- Zuban Configuration
- Key Settings
- Diagnostic Levels
- LSP Completion Setup
- on_attach Hook
- Multiple Language Servers
- Common LSP Capabilities
- Advanced Features
- Diagnostics Configuration
- Diagnostic Keybindings
- Hover Configuration
- LSP Formatting
- Workspace Folders
- Debugging LSP Issues
- Disabling LSP Features
- Performance Tuning
- Server Settings Reference
- Server-specific Documentation
- Testing LSP Configuration
- Troubleshooting LSP
- Summary
Development
- Development
- Prerequisites for Development
- Development Workflow
- Testing Configuration Changes
- Adding New Features
- Extending Lua Configuration
- Modifying the Installer
- Documentation
- Version Control
- Debugging Lua Configuration
- Testing Guidelines
- Code Style
- Performance Considerations
- Contributing
- Setting Up Development Environment
- Useful Resources
- Troubleshooting Development
- Need Help?
- Troubleshooting
- General Diagnostics
- Installation Issues
- Neovim Not Found
- Python Virtual Environment Issues
- LSP Not Working
- FZF Not Working
- Keybinding Issues
- Syntax Highlighting Issues
- Performance Issues
- Configuration Errors
- File Permissions
- Neovim Crashes
- Terminal-Related Issues
- Git-Related Issues
- Getting Help
- Common Messages
- Quick Fixes Summary
- Project Philosophy
Reference
- Install Script
- Overview
- Running the Script
- Installation Steps
- Customizing the Script
- Script Structure
- Error Handling
- Automation
- Running on CI/CD
- Check Exit Code
- Dependencies
- Troubleshooting the Installer
- Manual Installation Alternative
- Modifying the Script
- Distributing Modified Versions
- Next Steps After Installation
- Getting Help
- Source Code
- Python Dependencies