A comprehensive and well-organized Vim configuration optimized for Python development, DevOps workflows, and general productivity. This setup includes carefully selected plugins, sensible defaults, and productive key mappings.
Install everything with a single command:
curl -sL https://raw.githubusercontent.com/idvoretskyi/vim_idv/master/setup.sh | bashIf you've already cloned the repository:
git clone https://github.com/idvoretskyi/vim_idv.git
cd vim_idv
./install.sh- Vim 8.0+ or Neovim 0.4+
- Git (for plugin management and repository cloning)
- curl (for downloading components)
- Python 3 (for Python development features)
Optional but recommended:
- FZF for enhanced fuzzy finding
- ripgrep for faster text searching
- Powerline fonts for better status line appearance
- Modern Plugin Management: Powered by vim-plug with auto-installation
- Python Development: Complete IDE-like features for Python coding
- Git Integration: Built-in git commands and visual diff indicators
- File Navigation: Enhanced file explorer and fuzzy finding
- Code Quality: Automatic linting and syntax checking
- AI Assistance: GitHub Copilot integration for intelligent code completion
- π Fuzzy Finding: Fast file and content search with FZF
- π³ File Explorer: Enhanced NERDTree with git status integration
- β¨ Status Line: Beautiful and informative airline status bar
- π Python IDE: Complete Python development environment
- π Code Quality: Automatic PEP8 compliance and linting
- π¨ Themes: Beautiful Solarized color scheme
- β¨οΈ Productivity: Extensive key mappings for common tasks
| Plugin | Description |
|---|---|
| vim-sensible | Sensible defaults for Vim |
| vim-fugitive | Git integration |
| syntastic | Syntax checking framework |
| Plugin | Description |
|---|---|
| vim-airline | Enhanced status line |
| nerdtree | File system explorer |
| fzf.vim | Fuzzy finder integration |
| tagbar | Code structure browser |
| Plugin | Description |
|---|---|
| jedi-vim | Python autocompletion |
| python-mode | Python IDE features |
| vim-flake8 | PEP8 style checking |
| Plugin | Description |
|---|---|
| vim-gitgutter | Git diff indicators |
| nerdcommenter | Easy commenting |
| auto-pairs | Auto-close brackets |
| copilot.vim | AI code assistance |
| Key | Action |
|---|---|
<C-f> |
Toggle file explorer (NERDTree) |
<C-t> |
Toggle code structure (Tagbar) |
,f |
Fuzzy find files |
,b |
Fuzzy find buffers |
,g |
Search in files (ripgrep) |
| Key | Action |
|---|---|
<C-h/j/k/l> |
Navigate between splits |
<C-h/l> |
Switch between tabs |
<C-n> |
New tab |
| Key | Action |
|---|---|
,gs |
Git status |
,gc |
Git commit |
,gp |
Git push |
]h / [h |
Navigate git hunks |
| Key | Action |
|---|---|
,r |
Run Python file |
,8 |
Lint Python file |
,d |
Show documentation |
| Key | Action |
|---|---|
,w |
Save file |
,q |
Quit |
,<Space> |
Clear search highlight |
,ev |
Edit vimrc |
,sv |
Reload vimrc |
This configuration is optimized for Python development with:
- PEP8 Compliance: Automatic line length, indentation, and style checking
- Code Completion: Intelligent autocompletion with Jedi
- Linting: Real-time syntax and style checking with Flake8
- Code Navigation: Jump to definitions, find usages
- Documentation: Inline documentation display
- Testing: Easy test running and debugging
DEBUG=1: Enable debug mode for installation scriptsVERBOSE=1: Show detailed installation information
~/.vimrc: Main Vim configuration~/.vim/: Vim data directoryplugged/: Installed pluginsbackup/: Backup filesswap/: Swap filesundo/: Undo history
vim_idv/
βββ .vimrc # Main Vim configuration
βββ install.sh # Local installation script
βββ setup.sh # Remote installation script
βββ lib/
β βββ utils.sh # Shared utility functions
βββ README.md # This documentation
Plugin Installation Fails
# Manually install plugins
vim +PlugInstall +qallPython Features Not Working
# Ensure Python 3 is available
python3 --version
# Install Python development tools
pip3 install flake8 jediGit Integration Issues
# Verify git is installed and configured
git --version
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"To start fresh:
# Backup current configuration
mv ~/.vimrc ~/.vimrc.backup
# Remove plugin directory
rm -rf ~/.vim/plugged
# Reinstall
./install.shContributions are welcome! Please feel free to submit issues or pull requests.
# Clone the repository
git clone https://github.com/idvoretskyi/vim_idv.git
cd vim_idv
# Make changes and test
./install.sh
# Submit a pull requestThis project is open source and available under the MIT License.
- Issues: GitHub Issues
- Documentation: This README and inline code comments
- Community: Vim community resources and documentation
Happy Vimming! π