All Projects → lambdalisue → Gina.vim

lambdalisue / Gina.vim

Licence: mit
👣 Asynchronously control git repositories in Neovim/Vim 8

Projects that are alternatives of or similar to Gina.vim

Nvim Lspconfig
Quickstart configurations for the Nvim LSP client
Stars: ✭ 3,410 (+480.92%)
Mutual labels:  plugin, neovim
Vim Subversive
Vim plugin providing operator motions to quickly replace text
Stars: ✭ 168 (-71.38%)
Mutual labels:  plugin, neovim
Vim Laravel
Vim support for Laravel/Lumen projects
Stars: ✭ 128 (-78.19%)
Mutual labels:  plugin, neovim
Sniprun
A neovim plugin to run lines/blocs of code (independently of the rest of the file), supporting multiples languages
Stars: ✭ 93 (-84.16%)
Mutual labels:  plugin, neovim
Wp Missed Schedule
Find only missed schedule posts, every 15 minutes, and republish correctly 10 items each session. The Original plugin (only this) no longer available on WordPress.org for explicit author request! Compatible with WP 2.1+ to 4.9+ and 5.0-beta3 (100.000+ installs 300.000+ downloads 2016-04-13) Please: do not install unauthorized malware cloned forked!
Stars: ✭ 69 (-88.25%)
Mutual labels:  jobs, plugin
Close Buffers.vim
📖 Quickly close (bdelete) several buffers at once 📕
Stars: ✭ 99 (-83.13%)
Mutual labels:  plugin, neovim
Vim Svelte
Vim syntax highlighting and indentation for Svelte 3 components.
Stars: ✭ 158 (-73.08%)
Mutual labels:  plugin, neovim
Markdown Preview.vim
⚠️ PLEASE USE https://github.com/iamcco/markdown-preview.nvim INSTEAD
Stars: ✭ 764 (+30.15%)
Mutual labels:  plugin, neovim
Vim Yoink
Vim plugin that maintains a yank history to cycle between when pasting
Stars: ✭ 225 (-61.67%)
Mutual labels:  plugin, neovim
Vim Sneak
The missing motion for Vim 👟
Stars: ✭ 2,467 (+320.27%)
Mutual labels:  plugin, neovim
Vim Crates
Handle Cargo dependencies like a Rustavimean.
Stars: ✭ 54 (-90.8%)
Mutual labels:  plugin, neovim
Vimpyter
Edit your Jupyter notebooks in Vim/Neovim
Stars: ✭ 308 (-47.53%)
Mutual labels:  plugin, neovim
Neoformat
✨ A (Neo)vim plugin for formatting code.
Stars: ✭ 977 (+66.44%)
Mutual labels:  plugin, neovim
Nvim Toggleterm.lua
A neovim lua plugin to help easily manage multiple terminal windows
Stars: ✭ 102 (-82.62%)
Mutual labels:  plugin, neovim
Vim Dirvish
Directory viewer for Vim ⚡️
Stars: ✭ 929 (+58.26%)
Mutual labels:  plugin, neovim
Iris.vim
📫 Simple mail client for Vim.
Stars: ✭ 148 (-74.79%)
Mutual labels:  plugin, neovim
Aerojump.nvim
Aerojump is a fuzzy-match searcher/jumper for Neovim with the goal of quick keyboard navigation
Stars: ✭ 184 (-68.65%)
Mutual labels:  plugin, neovim
Gen tags.vim
Async plugin for vim and neovim to ease the use of ctags/gtags
Stars: ✭ 288 (-50.94%)
Mutual labels:  plugin, neovim
Comfortable Motion.vim
Brings physics-based smooth scrolling to the Vim world!
Stars: ✭ 543 (-7.5%)
Mutual labels:  plugin, neovim
Deoplete Jedi
deoplete.nvim source for Python
Stars: ✭ 559 (-4.77%)
Mutual labels:  neovim

👣 gina.vim

Version 1.0 Support Vim 8.1 or above Support Neovim 0.4 or above Support Git 2.25 or above Powered by vital.vim MIT License Doc Doc (dev)

reviewdog vim neovim

gina.vim (gina) is a plugin to asynchronously control git repositories.

Presentation

You've been Super Viman. After this talk, you could say you are Super Viman 2 -- Life with gina.vim

I've talked about what the gina.vim is in VimConf2017 (Slide). Check it out if you would like to feel what the gina.vim is.

Usage

The following is a schematic image of general working-flow with gina.

   ┌─────┬──────────┐
   │     │          │
#DIRTY#  │          ▼
   ▲     │    :Gina status  │ <<  : stage
   │     │          │       │ >>  : unstage
   │     │          │       │ --  : toggle
:write   │       #STAGED#   │ ==  : discard
   ▲     │          │       │ pp  : patch
   │     ├──────────┤       │ dd  : diff
   │     │          ▼
#CLEAN#  │     :Gina commit │ !   : switch --amend
   │     │          │       │ :w  : save cache
   │     ▼          │       │ :q  : commit changes (confirm)
   └────────────────┘       │ :wq : commit changes (immediate)

So basically user would

  1. Edit contents in a git repository
  2. Stage changes with :Gina status
  3. Commit changes with :Gina commit

See :h gina-usage for advance usage. Gina provides a lot more features.

Pros.

  • A git detection is fast and accurate
    • It does not require git process so incredibly fast
    • Used in lambdalisue/vim-gita, for several years
  • Commands are asynchronously performed
    • Users don't have to wait :Gina push (git push)
    • Asynchronous feature in Neovim is great. :Gina log (git log) on Linux repository won't freeze Neovim
  • Single command. Users do not need to remember tons of commands
    • :Gina {command} will execute a gina command or a git raw command asynchronously
    • :Gina! {command} will execute a git raw command asynchronously
    • :Gina!! {command} will execute a git raw command in a shell (mainly for :Gina!! add -p or :Gina!! rebase -i)
  • Action based. Users do not need to remember tons of mappings
    • ? to see the help
    • a to select an action to perform (complete with <Tab>)
    • . to repeat previous action
    • All action can map to an actual keymap
  • Author tried to follow Vim's flavor
    • No mapping for ee or whatever which conflicts with Vim's native mappings (like vim-gita does...)
  • Customizable
    • Users can define action aliases and mappings
    • Users can define default options and aliases of command
    • More
  • Tested on all major platforms
    • Powered by vim-jp/vital.vim, mean that the things are unit tested
    • Gina add some behaviour test as well

Contribution

Any contribution including documentations are welcome.

Contributers should install thinca/vim-themis to run tests before sending a PR if they applied some modification to the code. PRs which does not pass tests won't be accepted.

License

The code in gina.vim follows MIT license texted in LICENSE. Contributors need to agree that any modifications sent in this repository follow the license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].