vimproc is a great asynchronous execution library for Vim. It is a fork of proc.vim by Yukihiro Nakadaira. I added some features and fixed some bugs and I'm maintaining it now. Instead of an external shell (example: 'shell'), vimproc uses an external DLL file.
Supported platforms:
- Windows 32/64bit (Compiled by MinGW or Visual Studio)
- macOS (10.5 or later)
- Linux
- Cygwin
- Solaris
- BSD (but cannot check)
- Android (experimental)
Not supported platforms:
- Other UNIX platforms
- Clone this repo
- Build vimproc's native extensions (see Building for details)
- Copy
autoload/*
,lib/*
andplugin/*
files to your 'runtimepath' directory (see:help runtimepath
).
If you use dein.vim, you can update and build vimproc automatically. This is the recommended package manager.
call dein#add('Shougo/vimproc.vim', {'build' : 'make'})
If you use vim-plug, you can update and build vimproc automatically.
Plug 'Shougo/vimproc.vim', {'do' : 'make'}
If you use Vundle, add the following to your .vimrc
.
Plugin 'Shougo/vimproc.vim'
Then compile the plugin manually where it was installed.
i.e. on Linux & Mac
$ cd ~/.vim/bundle/vimproc.vim && make
See building
If you use neobundle.vim, you can update and build vimproc automatically.
NeoBundle 'Shougo/vimproc.vim', {
\ 'build' : {
\ 'windows' : 'tools\\update-dll-mingw',
\ 'cygwin' : 'make -f make_cygwin.mak',
\ 'mac' : 'make',
\ 'linux' : 'make',
\ 'unix' : 'gmake',
\ },
\ }
vimproc uses a pathogen compatible structure, so it can be managed with pathogen, however you must remember to compile after cloning the repo.
git clone https://github.com/Shougo/vimproc.vim.git ~/.vim/bundle/vimproc.vim
cd ~/.vim/bundle/vimproc.vim
make
Note: You must use GNU make to build vimproc.
You can install the dll using |VimProcInstall|. If you are having any trouble or want to build manually then read on.
$ make
Note: Users of macOS 10.15 (Catalina) cannot directly use this library with the system-provided vi. (SIP prevents binaries in the write-only /usr/bin
directory from calling dlopen
on unsigned libraries like vimproc_mac.so
.) The simplest solution is to build or install another version of vi in a non-SIP protected location. For example, using homebrew, brew install vim
(or nvim
) will install an unrestricted executable in /usr/local/bin
. (Don't forget to set up aliases or $PATH
so that you don't accidentally invoke the system vi
.)
$ make
Note: If you want to build for multiple architectures, you can use ARCHS
and CC
variables.
Build for i386 and x86-64:
$ make ARCHS='i386 x86_64'
$ gmake
If you want to use BSD make, use the platform specific makefile:
$ make -f make_bsd.mak
$ gmake
Note: If you want to use Sun Compiler, you can use SUNCC
variable.
$ gmake SUNCC=cc
Note: In Windows, using MinGW is recommended. Note: If you have not "gcc" binary, you must change $CC value.
Windows using MinGW (32bit Vim):
$ mingw32-make -f make_mingw32.mak
Windows using MinGW (If you want to use MinGW compiler in Cygwin):
$ mingw32-make -f make_mingw32.mak CC=mingw32-gcc
Windows using MinGW (64bit Vim):
$ mingw32-make -f make_mingw64.mak
Windows using Visual Studio (32bit/64bit Vim):
$ nmake -f make_msvc.mak
You should run this from VS command prompt. The architecture will be automatically detected, but you can also specify the architecture explicitly. E.g.:
32bit: nmake -f make_msvc.mak CPU=i386
64bit: nmake -f make_msvc.mak CPU=AMD64
Cygwin:
$ make
Note: The vimproc_cygwin.dll
compiled in Cygwin won't work with Windows Vim.
- Kaoriya Vim comes bundled with a precompiled version for vimproc in Windows environment
- https://github.com/Shougo/vimproc.vim/releases