Even if git is not available, one can still use plug.vim
for managing the runtime path.
This allows, to share the same config with several vim instances, some
of which, might not have vim installed (or not have it in $PATH). The
commands `:Plug` and `:PlugClean` seem to be safe even in this case.
Unfortunately in that case, plug.vim errors out on every start.
So let's just move the check for the existance of git to the place,
where it is actually needed.
In theory, we can also just move the check `:if excutable('git')` around
the definition of the all commands that need git, so they would be only
defined on systems that have git installed. But I actually like the way,
how the commands will always be defined, but they error out once one
tries to execute them.
Previously, syntax highlighting was turned on unconditionally in the
buffers opened by commands such as `:PlugUpdate`. With this commit,
highlighting is not applied if the user has disabled syntax highlighting
by calling `syntax off` after `call plug#end()` in their `vimrc`.
- The output file is no longer executable but a source-able vim script
- PlugSnapshot FILENAME to prompt the user if the file already exists
- Add PlugSnapshot! FILENAME variant to force overwrite existing file
- Apply -complete=file option to PlugSnapshot command
Specify PIPE as stdin for subprocess.Pipe for gvim.exe.
Also fixes some ruby implementation.
* windows doesn't have pgrep.
* windows can't handle SIGTERM.
* windows can't handle /dev/null
* redraw always
* Instead of having a fixed sleep duration, start a thread
that monitors the subprocess.
* Started thread is joined, if process finishes thread returns
before timeout.
* Should increase speed and reduce overhead on CPU.
* Refactor Command class for easier reading.
* Some other minor clean ups & method renames.
* Change travis to use `env` and `matrix` to select builds.
* Use case instead of ifs to select behaviour.
* Buffer updates now managed by __main__ loop with buf_q.
* Synchronous neovim install temporarily provided by python installer.
* Known issues:
* No ctrl-c/interrupt support on nvim.
* Graphical bug: https://github.com/neovim/python-client/issues/103
Checking for the existence of `jobwait()` function seems like a more
robust way to check if the current Neovim process meets the requirement
of the parallel installer. This condition precludes a very old version
of Neovim built even before the initial Job API was implemented.