{"id":13485226,"url":"https://github.com/rhysd/action-setup-vim","last_synced_at":"2025-04-12T17:44:55.958Z","repository":{"id":40687152,"uuid":"235934613","full_name":"rhysd/action-setup-vim","owner":"rhysd","description":"GitHub Action to setup Vim or Neovim on Linux, macOS and Windows for testing Vim plugins","archived":false,"fork":false,"pushed_at":"2025-04-03T13:40:49.000Z","size":3606,"stargazers_count":138,"open_issues_count":0,"forks_count":11,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-03T20:11:10.321Z","etag":null,"topics":["github-action","neovim","vim"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/setup-vim","language":"TypeScript","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/rhysd.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-24T03:39:54.000Z","updated_at":"2025-04-03T13:40:48.000Z","dependencies_parsed_at":"2024-01-04T15:32:17.769Z","dependency_job_id":"7545832b-76b2-4576-b20f-1f273a4e06c0","html_url":"https://github.com/rhysd/action-setup-vim","commit_stats":{"total_commits":353,"total_committers":8,"mean_commits":44.125,"dds":"0.053824362606232246","last_synced_commit":"c0a5f1c1f9b0e086515539638ea3ede278f27170"},"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhysd%2Faction-setup-vim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhysd%2Faction-setup-vim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhysd%2Faction-setup-vim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhysd%2Faction-setup-vim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhysd","download_url":"https://codeload.github.com/rhysd/action-setup-vim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248609497,"owners_count":21132914,"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":["github-action","neovim","vim"],"created_at":"2024-07-31T17:01:51.982Z","updated_at":"2025-04-12T17:44:55.936Z","avatar_url":"https://github.com/rhysd.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"GitHub Action to setup Vim and Neovim\n=====================================\n[![Build status][ci-badge]][ci]\n[![Action Marketplace][release-badge]][marketplace]\n\n[action-setup-vim][proj] is an action for [GitHub Actions][github-actions] to setup [Vim][vim] or\n[Neovim][neovim] on Linux, macOS and Windows. Stable releases, nightly releases and specifying\nversions are supported.\n\nFor stable releases, this action will install Vim or Neovim from system's package manager or\nofficial releases since it is the most popular way to install them and it's faster than building\nfrom source.\n\nFor nightly release, this action basically installs the nightly release of Vim or Neovim from\nofficial releases. If unavailable, it builds executables from sources.\n\nFor more details, please read the following 'Installation details' section.\n\n## Why?\n\nSince preparing Vim editor is highly depending on a platform. On Linux, Vim is usually installed via\nsystem's package manager like `apt`. On macOS, MacVim is the most popular Vim distribution and\nusually installed via Homebrew. On Windows, [official installers][win-inst] are provided.\n\nNeovim provides releases [on GitHub][neovim-release] and system package managers.\n\nIf you're an author of Vim and/or Neovim plugin and your plugin has some tests, you'd like to run\nthem across platforms on Vim and/or Neovim. action-setup-vim will help the installation with only\none step. You don't need to separate workflow jobs for each platforms and Vim/Neovim.\n\n## Usage\n\nInstall the latest stable Vim:\n\n```yaml\n- uses: rhysd/action-setup-vim@v1\n```\n\nInstall the latest nightly Vim:\n\n```yaml\n- uses: rhysd/action-setup-vim@v1\n  with:\n    version: nightly\n```\n\nInstall the latest Vim v8.1.123. The version is a tag name in [vim/vim][vim] repository. Please see\nthe following 'Choosing a specific version' section as well:\n\n```yaml\n- uses: rhysd/action-setup-vim@v1\n  with:\n    version: v8.1.0123\n```\n\nWhen you want to customize the build configuration for Vim, `configure-args` input is available.\nThe input is passed to `./configure` option when building Vim from source:\n\n```yaml\n- uses: rhysd/action-setup-vim@v1\n  with:\n    version: nightly\n    configure-args: |\n      --with-features=huge --enable-fail-if-missing --disable-nls\n```\n\nInstall the latest stable Neovim:\n\n```yaml\n- uses: rhysd/action-setup-vim@v1\n  with:\n    neovim: true\n```\n\nInstall the latest nightly Neovim:\n\n```yaml\n- uses: rhysd/action-setup-vim@v1\n  with:\n    neovim: true\n    version: nightly\n```\n\nInstall the Neovim v0.4.3. Please see the following 'Choosing a specific version' section as well:\n\n```yaml\n- uses: rhysd/action-setup-vim@v1\n  with:\n    neovim: true\n    version: v0.4.3\n```\n\nAfter the setup, `vim` executable will be available for Vim and `nvim` executable will be available\nfor Neovim.\n\nReal-world examples are workflows in [clever-f.vim][clever-f-workflow] and\n[git-messenger.vim][git-messenger-workflow]. And you can see [this repository's CI workflows][ci].\nThey run this action with all combinations of the inputs.\n\nFor comprehensive lists of inputs and outputs, please refer [action.yml](./action.yml).\n\n## Outputs\n\nThis action sets installed executable path to the action's `executable` output. You can use it for\nrunning Vim command in the steps later.\n\nHere is an example to set Vim executable to run unit tests with [themis.vim][vim-themis].\n\n```yaml\n- uses: actions/checkout@v2\n  with:\n    repository: thinca/vim-themis\n    path: vim-themis\n- uses: rhysd/action-setup-vim@v1\n  id: vim\n- name: Run unit tests with themis.vim\n  env:\n    THEMIS_VIM: ${{ steps.vim.outputs.executable }}\n  run: |\n    ./vim-themis/bin/themis ./test\n```\n\n## Supported platforms\n\n|                           | Vim                         | Neovim                  |\n|---------------------------|-----------------------------|-------------------------|\n| Linux x86_64              | :white_check_mark:          | :white_check_mark:      |\n| Linux arm64               | :white_check_mark:          | :warning: since v0.10.4 |\n| Linux arm32 (self-hosted) | :white_check_mark:          | :x:                     |\n| Windows x86_64            | :warning: no stable version | :white_check_mark:      |\n| macOS x86_64              | :white_check_mark:          | :white_check_mark:      |\n| macOS arm64               | :white_check_mark:          | :white_check_mark:      |\n\n- :white_check_mark: : Supported\n- :warning: : Supported with limitation\n- :x: : Unsupported\n\n## Installation details\n\n### Vim\n\n`vX.Y.Z` represents a specific version such as `v8.2.0126`.\n\n| OS      | Version   | Installation                                                                |\n|---------|-----------|-----------------------------------------------------------------------------|\n| Linux   | `stable`  | Install [`vim-gtk3`][vim-gtk3] via `apt` package manager                    |\n| Linux   | `nightly` | Build the HEAD of [vim/vim][vim] repository                                 |\n| Linux   | `vX.Y.Z`  | Build the `vX.Y.Z` tag of [vim/vim][vim] repository                         |\n| macOS   | `stable`  | Install MacVim via `brew install macvim`                                    |\n| macOS   | `nightly` | Build the HEAD of [vim/vim][vim] repository                                 |\n| macOS   | `vX.Y.Z`  | Build the `vX.Y.Z` tag of [vim/vim][vim] repository                         |\n| Windows | `stable`  | There is no stable release for Windows so fall back to `nightly`            |\n| Windows | `nightly` | Install the latest release from [the installer repository][win-inst]        |\n| Windows | `vX.Y.Z`  | Install the release at `vX.Y.Z` tag of [the installer repository][win-inst] |\n\nFor stable releases on all platforms and nightly on Windows, `gvim` executable is also available.\n\nWhen installing without system's package manager, Vim is installed at `$HOME/vim`.\n\n**Note:** When you build Vim older than 8.2.1119 on macOS, Xcode 11 or earlier is necessary due to\nlack of [this patch][vim_8_2_1119]. Please try `macos-11` runner instead of the latest macOS runner\nin the case.\n\n### Neovim\n\n`vX.Y.Z` represents a specific version such as `v0.4.3`.\n\n| OS      | Version   | Installation                                                              |\n|---------|-----------|---------------------------------------------------------------------------|\n| Linux   | `stable`  | Install from the latest [Neovim stable release][nvim-stable]              |\n| Linux   | `nightly` | Install from the latest [Neovim nightly release][nvim-nightly]            |\n| Linux   | `vX.Y.Z`  | Install the release at `vX.Y.Z` tag of [neovim/neovim][neovim] repository |\n| macOS   | `stable`  | `brew install neovim` using Homebrew                                      |\n| macOS   | `nightly` | Install from the latest [Neovim nightly release][nvim-nightly]            |\n| macOS   | `vX.Y.Z`  | Install the release at `vX.Y.Z` tag of [neovim/neovim][neovim] repository |\n| Windows | `stable`  | Install from the latest [Neovim stable release][nvim-stable]              |\n| Windows | `nightly` | Install from the latest [Neovim nightly release][nvim-nightly]            |\n| Windows | `vX.Y.Z`  | Install the release at `vX.Y.Z` tag of [neovim/neovim][neovim] repository |\n\nOnly on Windows, `nvim-qt.exe` executable is available for GUI.\n\nWhen installing without system's package manager, Neovim is installed at `$HOME/nvim`.\n\n**Note:** Ubuntu 18.04 supports official [`neovim` package][ubuntu-nvim] but this action does not\ninstall it. As of now, GitHub Actions also supports Ubuntu 16.04.\n\n**Note:** When downloading a Neovim asset from [`stable` release][nvim-stable] on GitHub, the asset\nis rarely missing in the release. In the case, this action will get the latest version tag from\nGitHub API and use it instead of `stable` tag (see [#5][issue-5] for more details).\n\n**Note:** When downloading a Neovim asset from [`nightly` release][nvim-nightly] on GitHub, it might\ncause 'Asset Not Found' error. This is because the Nightly build failed due to some reason in\n[neovim/neovim][neovim] CI workflow. In the case, this action tries to build Neovim from sources on\nLinux and macOS workers. It gives up installation on other platforms.\n\n## Choosing a specific version\n\n### Vim\n\nIf Vim is built from source, any tag version should be available.\n\nIf Vim is installed via release asset (on Windows), please check\n[vim-win32-installer releases page][win-inst-release] to know which versions are available.\nThe repository makes a release once per day (nightly).\n\nNote that Vim's patch number in version tags is in 4-digits like `v8.2.0126`. Omitting leading\nzeros such as `v8.2.126` or `v8.2.1` is not allowed.\n\n### Neovim\n\nWhen installing the specific version of Neovim, this action downloads release assets from\n[neovim/neovim][neovim]. Please check [neovim/neovim releases page][neovim-release] to know which\nversions have release assets. For example,\n[Neovim 0.4.0](https://github.com/neovim/neovim/releases/tag/v0.4.0) has no Windows releases so it\nis not available for installing Neovim on Windows.\n\n## Current limitation\n\n- GUI version (gVim and nvim-qt) is supported partially as described in above section.\n- Installing Vim/Neovim from system's package manager is not configurable. For example, arguments\n  cannot be passed to `brew install`.\n\nThese are basically not a technical limitation. Please let me know by creating an issue if you want\nsome of them.\n\n## License\n\nDistributed under [the MIT license](./LICENSE.txt).\n\n[ci-badge]: https://github.com/rhysd/action-setup-vim/actions/workflows/ci.yml/badge.svg\n[ci]: https://github.com/rhysd/action-setup-vim/actions/workflows/ci.yml\n[release-badge]: https://img.shields.io/github/v/release/rhysd/action-setup-vim.svg\n[marketplace]: https://github.com/marketplace/actions/setup-vim\n[proj]: https://github.com/rhysd/action-setup-vim\n[github-actions]: https://github.com/features/actions\n[vim]: https://github.com/vim/vim\n[neovim]: https://github.com/neovim/neovim\n[win-inst]: https://github.com/vim/vim-win32-installer\n[nvim-stable]: https://github.com/neovim/neovim/releases/tag/stable\n[nvim-nightly]: https://github.com/neovim/neovim/releases/tag/nightly\n[clever-f-workflow]: https://github.com/rhysd/clever-f.vim/blob/master/.github/workflows/ci.yml\n[git-messenger-workflow]: https://github.com/rhysd/git-messenger.vim/blob/master/.github/workflows/ci.yml\n[vim-gtk3]: https://packages.ubuntu.com/search?keywords=vim-gtk3\n[ubuntu-nvim]: https://packages.ubuntu.com/search?keywords=neovim\n[vim-themis]: https://github.com/thinca/vim-themis\n[win-inst-release]: https://github.com/vim/vim-win32-installer/releases\n[neovim-release]: https://github.com/neovim/neovim/releases\n[generate-pat]: https://github.com/settings/tokens/new\n[gh-action-secrets]: https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets\n[issue-5]: https://github.com/rhysd/action-setup-vim/issues/5\n[vim_8_2_1119]: https://github.com/vim/vim/commit/5289783e0b07cfc3f92ee933261ca4c4acdca007\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhysd%2Faction-setup-vim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhysd%2Faction-setup-vim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhysd%2Faction-setup-vim/lists"}