From 5cc9975c63674471ac4512457f8af73521d5a68b Mon Sep 17 00:00:00 2001 From: Tuowen Zhao Date: Tue, 14 Apr 2026 22:25:40 -0700 Subject: add gemini skill --- .gemini/skills/vim-bundle-maintenance/SKILL.md | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .gemini/skills/vim-bundle-maintenance/SKILL.md diff --git a/.gemini/skills/vim-bundle-maintenance/SKILL.md b/.gemini/skills/vim-bundle-maintenance/SKILL.md new file mode 100644 index 0000000..69ec63d --- /dev/null +++ b/.gemini/skills/vim-bundle-maintenance/SKILL.md @@ -0,0 +1,41 @@ +--- +name: vim-bundle-maintenance +description: Manage and update Vim plugin submodules, including URL syncing, recursive remote updates, and recompiling complex plugins like YouCompleteMe. Use when the user wants to upgrade their Vim bundles or fix broken submodule links. +--- + +# Vim Bundle Maintenance + +This skill provides a standardized workflow for maintaining Vim plugins managed via Git submodules (typically in `pack/bundle/start/`). + +## Workflow + +### 1. Research and Sync +- **Verify Upstreams**: Check if submodule URLs in `.gitmodules` are still valid. +- **Sync URLs**: If URLs have changed (e.g., repository moved to a new organization), update `.gitmodules` and run: + ```bash + git submodule sync --recursive + ``` + +### 2. Update Submodules +- **Recursive Remote Update**: Pull the latest commits from the default branch of all submodules: + ```bash + git submodule update --init --recursive --remote + ``` +- **Modernize Update Script**: Ensure `bundle-update.sh` (if it exists) uses the `git submodule update --remote` approach rather than manual `git pull` within directories to avoid branch-matching issues. + +### 3. Clean and Recompile +Some plugins require manual compilation after an update. +- **YouCompleteMe**: + 1. Clean the submodule: `(cd pack/bundle/start/YouCompleteMe && git clean -fdx && git checkout .)` + 2. Run installer: `python3 pack/bundle/start/YouCompleteMe/install.py --clang-completer` (add other flags like `--ts-completer` as needed). + +### 4. Finalize +- Stage the changes: `git add .gitmodules bundle-update.sh pack/bundle/start/` +- Commit with a descriptive message including the update date. + +## Common Flags for YCM install.py +- `--clang-completer`: C-family support. +- `--ts-completer`: JavaScript/TypeScript support. +- `--go-completer`: Go support. +- `--rust-completer`: Rust support. +- `--all`: Enable all supported engines. -- cgit v1.3.1