{"id":9407218,"url":"https://github.com/lambdalisue/vim-gina","last_synced_at":"2025-08-20T10:30:35.794Z","repository":{"id":49600722,"uuid":"76446954","full_name":"lambdalisue/vim-gina","owner":"lambdalisue","description":"👣  Asynchronously control git repositories in Neovim/Vim 8","archived":true,"fork":false,"pushed_at":"2022-03-30T04:28:47.000Z","size":1508,"stargazers_count":689,"open_issues_count":29,"forks_count":27,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-08-13T22:15:55.657Z","etag":null,"topics":["asynchronously","gina","git","jobs","neovim","plugin","vim","vim-gita"],"latest_commit_sha":null,"homepage":"http://www.vim.org/scripts/script.php?script_id=5531","language":"Vim script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lambdalisue.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-12-14T09:55:30.000Z","updated_at":"2024-08-13T22:15:55.658Z","dependencies_parsed_at":"2022-09-13T03:01:58.761Z","dependency_job_id":null,"html_url":"https://github.com/lambdalisue/vim-gina","commit_stats":null,"previous_names":["lambdalisue/gina.vim"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdalisue%2Fvim-gina","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdalisue%2Fvim-gina/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdalisue%2Fvim-gina/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdalisue%2Fvim-gina/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lambdalisue","download_url":"https://codeload.github.com/lambdalisue/vim-gina/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":217056167,"owners_count":16118028,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asynchronously","gina","git","jobs","neovim","plugin","vim","vim-gita"],"created_at":"2024-05-10T18:04:40.149Z","updated_at":"2024-08-26T19:31:16.316Z","avatar_url":"https://github.com/lambdalisue.png","language":"Vim script","funding_links":[],"categories":["Vim Script"],"sub_categories":[],"readme":"# 👣 gina.vim\n\n![Version 1.0](https://img.shields.io/badge/version-1.0-yellow.svg)\n![Support Vim 8.1 or above](https://img.shields.io/badge/support-Vim%208.1%20or%20above-yellowgreen.svg)\n![Support Neovim 0.4 or above](https://img.shields.io/badge/support-Neovim%200.4%20or%20above-yellowgreen.svg)\n![Support Git 2.25 or above](https://img.shields.io/badge/support-Git%202.25%20or%20above-green.svg)\n[![Powered by vital.vim](https://img.shields.io/badge/powered%20by-vital.vim-80273f.svg)](https://github.com/vim-jp/vital.vim)\n[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Doc](https://img.shields.io/badge/doc-%3Ah%20gina-orange.svg)](doc/gina.txt)\n[![Doc (dev)](https://img.shields.io/badge/doc-%3Ah%20gina--develop-orange.svg)](doc/gina-develop.txt)\n\n[![reviewdog](https://github.com/lambdalisue/gina.vim/workflows/reviewdog/badge.svg)](https://github.com/lambdalisue/gina.vim/actions?query=workflow%3Areviewdog)\n[![vim](https://github.com/lambdalisue/gina.vim/workflows/vim/badge.svg)](https://github.com/lambdalisue/gina.vim/actions?query=workflow%3Avim)\n[![neovim](https://github.com/lambdalisue/gina.vim/workflows/neovim/badge.svg)](https://github.com/lambdalisue/gina.vim/actions?query=workflow%3Aneovim)\n\n---\n\n**WARNING**\n\nDevelopment of gina.vim is stopped. Users should be patient with existing bugs or check [gin.vim](https://github.com/lambdalisue/gin.vim) that is under active development. Any further improvements of features will be applied to gin.vim instead.\n\n---\n\ngina.vim (gina) is a plugin to asynchronously control git repositories.\n\n## Presentation\n\n[![You've been Super Viman. After this talk, you could say you are Super Viman 2 -- Life with gina.vim](https://img.youtube.com/vi/zkANQ9l7YDM/0.jpg)](https://www.youtube.com/watch?v=zkANQ9l7YDM)\n\nI've talked about what the gina.vim is in [VimConf2017](http://vimconf.vim-jp.org/2017/) ([Slide](https://lambdalisue.github.io/vimconf2017/assets/player/KeynoteDHTMLPlayer.html)). Check it out if you would like to feel what the gina.vim is.\n\n## Usage\n\nThe following is a schematic image of general working-flow with gina.\n\n```\n   ┌─────┬──────────┐\n   │     │          │\n#DIRTY#  │          ▼\n   ▲     │    :Gina status  │ \u003c\u003c  : stage\n   │     │          │       │ \u003e\u003e  : unstage\n   │     │          │       │ --  : toggle\n:write   │       #STAGED#   │ ==  : discard\n   ▲     │          │       │ pp  : patch\n   │     ├──────────┤       │ dd  : diff\n   │     │          ▼\n#CLEAN#  │     :Gina commit │ !   : switch --amend\n   │     │          │       │ :w  : save cache\n   │     ▼          │       │ :q  : commit changes (confirm)\n   └────────────────┘       │ :wq : commit changes (immediate)\n```\n\nSo basically user would\n\n1. Edit contents in a git repository\n2. Stage changes with `:Gina status`\n3. Commit changes with `:Gina commit`\n\nSee `:h gina-usage` for advance usage. Gina provides a lot more features.\n\n## Pros.\n\n- A git detection is fast and accurate\n  - It does not require `git` process so incredibly fast\n  - Used in [lambdalisue/vim-gita][], for several years\n- Commands are asynchronously performed\n  - Users don't have to wait `:Gina push` (`git push`)\n  - Asynchronous feature in Neovim is great. `:Gina log` (`git log`) on **Linux** repository won't freeze Neovim\n- Single command. Users do not need to remember tons of commands\n  - `:Gina {command}` will execute a gina command or a git raw command asynchronously\n  - `:Gina! {command}` will execute a git raw command asynchronously\n  - `:Gina!! {command}` will execute a git raw command in a shell (mainly for `:Gina!! add -p` or `:Gina!! rebase -i`)\n- Action based. Users do not need to remember tons of mappings\n  - `?` to see the help\n  - `a` to select an action to perform (complete with `\u003cTab\u003e`)\n  - `.` to repeat previous action\n  - All action can map to an actual keymap\n- Author tried to follow Vim's flavor\n  - No mapping for `ee` or whatever which conflicts with Vim's native mappings (like vim-gita does...)\n- Customizable\n  - Users can define action aliases and mappings\n  - Users can define default options and aliases of command\n  - More\n- Tested on all major platforms\n  - Powered by [vim-jp/vital.vim][], mean that the things are unit tested\n  - Gina add some behaviour test as well\n\n[lambdalisue/vim-gita]: https://github.com/lambdalisue/vim-gita\n[vim-jp/vital.vim]: https://github.com/vim-jp/vital.vim\n\n## Contribution\n\nAny contribution including documentations are welcome.\n\nContributers should install [thinca/vim-themis][] to run tests before sending a PR if they applied some modification to the code.\nPRs which does not pass tests won't be accepted.\n\n[thinca/vim-themis]: https://github.com/thinca/vim-themis\n\n## License\n\nThe code in gina.vim follows MIT license texted in [LICENSE](./LICENSE).\nContributors need to agree that any modifications sent in this repository follow the license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flambdalisue%2Fvim-gina","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flambdalisue%2Fvim-gina","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flambdalisue%2Fvim-gina/lists"}