setup-vim
is a GitHub Action to setup Vim, Neovim, or MacVim.
Basic:
# Setup the head version of Vim
- uses: thinca/action-setup-vim@v2
With options:
- uses: thinca/action-setup-vim@v2
with:
vim_version: v9.1.0000
Setup Vim and Neovim with 2 versions for each platforms using matrix:
strategy:
matrix:
vim_type: ['Vim', 'Neovim']
version: ['head', 'stable']
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
include:
- vim_type: 'Vim'
version: 'stable'
vim_version: 'v9.1.0000'
runs-on: '${{ matrix.os }}'
steps:
- uses: 'actions/checkout@v4'
- name: 'Setup Vim'
id: 'vim'
uses: 'thinca/action-setup-vim@v2'
with:
vim_version: '${{ matrix.vim_version || matrix.version }}'
vim_type: '${{ matrix.vim_type }}'
- name: 'Run test'
run: |
# Show Vim's version
${{ steps.vim.outputs.executable }} --version
# ... run tests ...
This action provides two ways to setup Vim.
-
Build Vim from source code. You can specify Git's ref(tag, branch, or sha1) for
vim_version
. The result is cached by default. Seecache
input. -
Download pre-built Vim from releases page. You can specify semver(v9.1.0146, v0.9.5) or tag name of GitHub Release for
vim_version
.
Some combinations not available. See the following.
By default, uses download
if available, otherwise uses build
.
OS | way | GUI | Installation |
---|---|---|---|
Linux | build |
gvim |
Sources from vim/vim. |
Linux | download |
gvim |
Releases from vim/vim-appimage. (*) |
MacOS | build |
gvim |
Sources from vim/vim. |
MacOS | download |
N/A | Not available. |
Windows | build |
gvim |
Sources from vim/vim. |
Windows | download |
gvim |
Releases from vim/vim-win32-installer. |
(*) Downloading Vim from AppImage is available from v8.1.1239. Before v8.1.1234 cannot start vim. This was fixed by vim/vim-appimage#6.
OS | way | GUI | Installation |
---|---|---|---|
Linux | build |
N/A | Sources from neovim/neovim. |
Linux | download |
N/A | Releases from neovim/neovim. |
MacOS | build |
N/A | Sources from neovim/neovim. (**) |
MacOS | download |
N/A | Releases from neovim/neovim. |
Windows | build |
N/A | Not available(Help wanted). |
Windows | download |
nvim-qt.exe |
Releases from neovim/neovim. |
(**) Building Neovim on MacOS(Catalina) has a problem.
Building v0.4.3 and before versions will be failure. See neovim/neovim#11412 for the detail.
OS | way | GUI | Installation |
---|---|---|---|
Linux | build |
N/A | Not available. |
Linux | download |
N/A | Not available. |
MacOS | build |
N/A | Sources from macvim-dev/macvim. |
MacOS | download |
N/A | Releases from macvim-dev/macvim. |
Windows | build |
N/A | Not available. |
Windows | download |
N/A | Not available. |
MacVim has a GUI version, but it is not supported yet because it is too difficult treating on CI.
Building snapshot-157 and before versions will be failure. See macvim-dev/macvim#946 for the detail.
Version of Vim.
The meaning of this value depends on vim_type
and download
.
The value head
is always head version:
When download
is on, this points head of release.
When download
is off, this points master of repository.
When download
is on and specified a semver such as v8.2.0000
, this action finds a minimum version that is higher than a specified version.
For example, when there are some released versions: v8.2.0052
v8.2.0057
v8.2.0065
And when a specified version is v8.2.0055
, v8.2.0057
is actually selected.
Also, when a specified version is v8.2.0060
, v8.2.0065
is actually selected.
When download
is off, this is a tag of repository.
Note that the repository of MacVim has tags like release-xxx
instead of like vx.x.xxx
.
default: head
Type of Vim.
This is one of vim
, neovim
, or macvim
.
default: vim
When this is yes
, setups the GUI version.
And outputs.executable
points to GUI version of Vim.
default: no
Architecture of Vim.
This is either of x86_64
or x86
, enable when vim_type
is vim
on Windows.
default: x86_64
When this is always
, downloads the officially released binary, or fail if unavailable.
When this is available
, downloads the officially released binary if available, otherwise builds from source code.
When this is never
, always builds from source code.
default: available
When this is true
(default), cache the built Vim.
This uses same caching mechanism from actions/cache. Therefore, this consumes the limitation of cache size.
Ref: Caching dependencies to speed up workflows#Usage limits and eviction policy
This is automatically disabled when download
is on.
default: true
Your GitHub API token to access to releases of repositories without limit. Normally this is automatically set so you do not need set this.
default: ${{ github.token }}
The name of executable file.
This is not a full path, just name.
When gui
is yes, this points to GUI version.
e.g. vim
nvim
gvim
The full path of executable file.
Version of Vim actually installed.
e.g. v8.2.0123
v0.4.3
49cd750d6a72efc0571a89d7a874bbb01081227f
Install was done with build
or download
.
Base path of installed Vim.
Note that this does not point to bin
.
When cache
is enabled and cache was found, this is true
. Otherwise this is false
.
thinca thinca@gmail.com