Skip to content

idvoretskyi/vim_idv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

IDV's Vim Configuration

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.

πŸš€ Quick Start

One-line Installation (Recommended)

Install everything with a single command:

curl -sL https://raw.githubusercontent.com/idvoretskyi/vim_idv/master/setup.sh | bash

Local Installation

If you've already cloned the repository:

git clone https://github.com/idvoretskyi/vim_idv.git
cd vim_idv
./install.sh

πŸ“‹ Requirements

  • 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

🎯 Features

Core Functionality

  • 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

Key Highlights

  • πŸ” 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

πŸ“¦ Included Plugins

Core Plugins

Plugin Description
vim-sensible Sensible defaults for Vim
vim-fugitive Git integration
syntastic Syntax checking framework

Interface & Navigation

Plugin Description
vim-airline Enhanced status line
nerdtree File system explorer
fzf.vim Fuzzy finder integration
tagbar Code structure browser

Python Development

Plugin Description
jedi-vim Python autocompletion
python-mode Python IDE features
vim-flake8 PEP8 style checking

Code Quality & Git

Plugin Description
vim-gitgutter Git diff indicators
nerdcommenter Easy commenting
auto-pairs Auto-close brackets
copilot.vim AI code assistance

⌨️ Key Mappings

File Navigation

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)

Window Management

Key Action
<C-h/j/k/l> Navigate between splits
<C-h/l> Switch between tabs
<C-n> New tab

Git Operations

Key Action
,gs Git status
,gc Git commit
,gp Git push
]h / [h Navigate git hunks

Python Development

Key Action
,r Run Python file
,8 Lint Python file
,d Show documentation

General Editing

Key Action
,w Save file
,q Quit
,<Space> Clear search highlight
,ev Edit vimrc
,sv Reload vimrc

🐍 Python Development Features

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

πŸ› οΈ Customization

Environment Variables

  • DEBUG=1: Enable debug mode for installation scripts
  • VERBOSE=1: Show detailed installation information

Configuration Files

  • ~/.vimrc: Main Vim configuration
  • ~/.vim/: Vim data directory
    • plugged/: Installed plugins
    • backup/: Backup files
    • swap/: Swap files
    • undo/: Undo history

πŸ“ Project Structure

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

πŸ”§ Troubleshooting

Common Issues

Plugin Installation Fails

# Manually install plugins
vim +PlugInstall +qall

Python Features Not Working

# Ensure Python 3 is available
python3 --version
# Install Python development tools
pip3 install flake8 jedi

Git Integration Issues

# Verify git is installed and configured
git --version
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

Reset Configuration

To start fresh:

# Backup current configuration
mv ~/.vimrc ~/.vimrc.backup

# Remove plugin directory
rm -rf ~/.vim/plugged

# Reinstall
./install.sh

🀝 Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

Development Setup

# Clone the repository
git clone https://github.com/idvoretskyi/vim_idv.git
cd vim_idv

# Make changes and test
./install.sh

# Submit a pull request

πŸ“„ License

This project is open source and available under the MIT License.

πŸ“ž Support

  • Issues: GitHub Issues
  • Documentation: This README and inline code comments
  • Community: Vim community resources and documentation

Happy Vimming! πŸŽ‰

About

My awesome vim configuration

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published