https://github.com/dntstck/virgo
Virgo ♍︎ - Rust Crate Management for Vim
https://github.com/dntstck/virgo
automation cargo cli-tool crates crates-io cratesio dependency-management dependency-manager dev-tools developer-tools rust rust-lang rust-vim rustlang vim vim-plug vim-plugin vim-plugins vim-rust
Last synced: 7 days ago
JSON representation
Virgo ♍︎ - Rust Crate Management for Vim
- Host: GitHub
- URL: https://github.com/dntstck/virgo
- Owner: dntstck
- Created: 2025-04-16T01:39:48.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2025-05-30T22:44:31.000Z (10 months ago)
- Last Synced: 2025-10-28T12:51:28.672Z (5 months ago)
- Topics: automation, cargo, cli-tool, crates, crates-io, cratesio, dependency-management, dependency-manager, dev-tools, developer-tools, rust, rust-lang, rust-vim, rustlang, vim, vim-plug, vim-plugin, vim-plugins, vim-rust
- Language: Vim Script
- Homepage:
- Size: 215 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Virgo ♍︎ Rust Crate Management for Vim 🦀
Virgo (Vim & Cargo) is a Rust crate management system, seamlessly integrated into Vim.
---
## 📖 Table of Contents
- [🔥 Features](#features)
- [🚀 What's New](#whats-new)
- [🚀 Installation](#installation)
- [🛠️ Commands Overview](#commands-overview)
- [📸 Usage Examples](#usage-examples)
- [🛠️ Troubleshooting](#troubleshooting)
---
## 🔥 Features
✅ **Crate Management** - Search, add, remove, update, and rollback Rust crates effortlessly.
✅ **Feature Orchestration** - Add and remove crate features on the fly.
✅ **Native Vim Compatibility** - Seamlessly integrates with Vim using intuitive `:virgo` commands.
✅ **Blazing Fast Performance** - Built in Rust for maximum speed and efficiency.
✅ **Fully Automated** - No manual edits needed; Virgo takes care of `Cargo.toml` for you.
✅ **Crate Info** - Discover documentation, stats, and detailed crate info directly in Vim.
✅ **Backup & Restore** - Secure your `Cargo.toml`, rollback safely, and prevent accidental changes.
✅ **Visual Feedback** - Enhanced output formatting for structured readability and usability.
✅ **Dependency Insights** - Examine dependencies, visualize trees, track updates, and filter changelogs.
✅ **Breaking Changes** - Analyze `Cargo.toml` for breaking updates before they happen.
✅ **Rollback Protection** - Easily revert changes, maintain stability, and prevent unintended updates.
✅ **Compare Versions** - Instantly compare bleeding-edge vs latest stable versions.
✅ **Docs Lookup** - Fetch crate documentation and examples directly from **docs.rs**.
✅ **Complete Cargo.toml Management** - Health checks, edits, structured initialization, and validation.
---
**Optimizations** – Added threading to outdated and depends commands which access crates.io concurrently, siginificantly reducing delays
---
### **With vim-plug**
Add this to your Vim configuration (`~/.vimrc` or `~/.config/nvim/init.vim`):
```vim
Plug 'dntstck/virgo'
```
Then run:
```vim
:PlugInstall
```
### **With Vundle**
Add this to your `.vimrc`:
```vim
Plugin 'dntstck/virgo'
```
Then install it with:
```vim
:PluginInstall
```
### **With Pathogen**
Clone the repo into your Vim bundle directory:
```bash
git clone https://github.com/dntstck/virgo-vim ~/.vim/bundle/virgo-vim
```
---
### 🔍 Search & Information
```vim
:virgo search " Search for a crate on crates.io
:virgo stats " Display the stats of a crate
:virgo info " Displays detailed info of a crate
:virgo versions " Displays all available versions of a crate
:virgo trending " Displays trending crates
```
### 🛠 Dependency Management
```vim
:virgo add " Adds selected crate, use -f to add crate features
:virgo remove " Removes selected crate, use -f to remove crate features
:virgo update " Updates selected dependency
:virgo rollback " Rolls back to a previous version
:virgo compare " Compares bleeding-edge with latest stable version of a selected crate
:virgo depends " Displays all the dependencies of a selected crate
```
### 📜 Project & Cargo.toml Handling
```vim
:virgo all " Displays all installed dependencies in Cargo.toml
:virgo health " Checks current Cargo.toml for overall health
:virgo breaking " Analyzes Cargo.toml for breaking changes
:virgo lockfile " Inspects Cargo.lock for precise version tracking
:virgo changelog " View changelog for a selected crate (Filter by major, minor, patch, since x.x.x & more)
:virgo tree " Display a tree of dependencies for a crate
:virgo init " Creates a basic Cargo.toml in the current dir
:virgo edit " Edit Name, Version, and Edition in the current Cargo.toml
```
### 🔄 Backup & Restore
``` vim
:virgo backup " Backup Cargo.toml
:virgo restore " Restore Cargo.toml from latest backup
```
### 📚 Documentation & Help
```vim
:virgo docs "View documentation for a selected crate, use -o to open in docs.rs or -e to view examples
:virgo help "Print this message or the help of the given subcommand(s)
:virgo about "Display information about Virgo
```
---
### 🛠 Adding a Crate
Instantly add crates without leaving Vim.

### 🔍 Viewing Installed Crates
Displays all currently installed dependencies in Cargo.toml.

### 🔄 Creating a Backup
Secure your Cargo.toml before making changes.

### ⚠️ Detecting Breaking Changes
Analyze Cargo.toml for potential breaking updates.

### 📜 Viewing Changelog Entries
Filter changelogs by major, minor, patch, or version.

### 🔍 Comparing Versions
Instantly compare bleeding-edge with latest stable.

### 🔗 Inspecting Dependencies
Display dependencies of a selected crate.

### 📚 Viewing Documentation & Examples
Quickly fetch crate documentation and code examples.

### 🔎 Viewing Examples
Displays example snippets for a selected crate.

### 🌐 Opening Docs.rs
Open crate documentation directly in a browser.

### ✏️ Editing Cargo.toml
Modify Name, Version, and Edition in Cargo.toml.

### ✅ Checking Cargo.toml Health
Verify the integrity and structure of Cargo.toml.

### ℹ️ Viewing Crate Info
Display detailed information about a crate.

### 🔑 Inspecting Cargo.lock
Track precise crate versions in Cargo.lock.

### ⚠️ Checking Outdated Dependencies
Identify outdated dependencies without Cargo.

### ❌ Removing Crates
Easily remove a selected crate.

### 🔄 Restoring a Backup
Revert Cargo.toml to a previous backup.

### ⏪ Rolling Back Versions
Roll back crates to a previous version.

### 🔎 Searching for Crates
Find dependencies with blazing-fast lookup.

### 📊 Viewing Crate Stats
Display download counts, ratings, and more.

### 🌳 Viewing Dependency Tree
Display a structured dependency tree for a crate.

### 🔥 Discovering Trending Crates
Find trending crates on crates.io.

### 🔄 Updating Crates
Update a dependency to the latest stable version.

### 📦 Viewing Available Versions
Display all available versions of a crate.

---
### **Common Issues**
**Permission Denied?**
```bash
chmod +x ~/.vim/bundle/virgo/bin/virgo
```
**Cargo.lock Conflicts?**
```bash
cargo generate-lockfile
```