Create and modify GitHub issues, pull requests, comments, code reviews, and much more while using Vim.
Hubbub supports a wide variety of features and GitHub API interactions, including:
vim
>= 8.0 / neovim
curl
openssl
let g:hubbub_openssl_old = 1
needs to be included in your .vimrc
Plugin 'benbusby/vim-hubbub'
Plug 'benbusby/vim-hubbub'
git clone https://github.com/benbusby/vim-hubbub.git ~/.vim/bundle/vim-hubbub
:set rtp+=~/.vim/bundle/vim-hubbub
:HubbubInit
For information and comprehensive guides on how to use the plugin, please refer to the hubbub wiki
See also configuration and keybindings in the wiki.
For the hubbub docs, please refer to :h hubbub
A full list of the available (optional) global variables for hubbub are located here
Example .vimrc
settings:
" Defaults
let g:hubbub_language = 'en'
let g:hubbub_show_outdated = 0
let g:hubbub_openssl_old = 0
" French, show outdated, use short command alternatives
let g:hubbub_language = 'fr'
let g:hubbub_show_outdated = 1
let g:hubbub_short_commands = 1
" Spanish, use older OpenSSL, show footer
let g:hubbub_language = 'es'
let g:hubbub_openssl_old = 1
let g:hubbub_footer = 1
Any type of contribution is welcome and appreciated, whether its just using the plugin and validating that the available features work as expected, implementing features or bug fixes, or expanding on the vader tests.
The project has the following general structure:
├── assets/
│ ├── header.txt # The "header" that appears on nearly every page in the UI
│ ├── img/
│ ├── response_keys.json # A combined json mapping of GitHub and GitLab response keys
│ └── strings.json # Translations/UI strings
├── autoload/
│ ├── hubbub/ # Utilities and helper classes (API, crypto, buffers, etc)
│ └── hubbub.vim # User command implementations and hooks into API/buffer calls
├── doc/
│ └── hubbub.txt # Hubbub documentation
├── LICENSE
├── plugin/
│ └── hubbub.vim # A "header file" of all user accessible plugin commands
├── README.md
└── test/
└── hubbub.vader # Plugin tests
If you're interested in contributing to GitLab support, the main file you'll want to edit is autoload/hubbub/gitlab.vim
. It will likely involve a decent amount of work to match feature functionality between GitHub and GitLab, but I'm happy with even small, incremental PRs.
To set up a hubbub token on GitLab:
If you would like to improve the UI translation support, please edit assets/strings.json accordingly and create a new PR with your changes.
Note that the existing languages have certain sections formatted to align cleanly in the repo and issue list views. Please try to conform to this alignment when adding/editing existing translations.
The plugin is currently in a usable state, but is still a work in progress. If you experience any unexpected behavior, please open an issue.
At the moment, there are quite a few GitHub features that are either only partially implemented or are entirely absent from the plugin. If you're a GitHub "power user", then this plugin is likely not ready for you, as it is currently lacking features like:
The project started as a fun way for me to learn Vimscript, and was initially built for replying to comments on GitHub. It eventually snowballed into its current form, which I find to be somewhat useful as a quick and easy way to manage issues, reply to comments, review (small) PRs, etc.