Control Neovim instances using "nvr" commandline tool
Project description
Intro
nvr is a tool that helps controlling nvim processes.
It basically does two things:
adds back the --remote family of options (see man vim)
helps controlling the current nvim from within :terminal
To target a certain nvim process, you either use the --servername option or set the environment variable $NVIM_LISTEN_ADDRESS.
Since $NVIM_LISTEN_ADDRESS is implicitely set by each nvim process, you can call nvr from within Neovim (:terminal) without specifying --servername.
Installation
$ pip3 install neovim-remote
FAQ
How to open directories?
:e /tmp opens a directory view via netrw. Netrw works by hooking into certain events, BufEnter in this case (see :au FileExplorer for all of them).
Unfortunately Neovim’s API doesn’t trigger any autocmds on its own, so simply nvr /tmp won’t work. Meanwhile you can work around it like this:
$ nvr /tmp -c 'doau BufEnter'
Examples
In one window, create the server process:
$ NVIM_LISTEN_ADDRESS=/tmp/nvimsocket nvim
In another window do this:
$ # Spares us from using --servername all the time:
$ export NVIM_LISTEN_ADDRESS=/tmp/nvimsocket
$ # Open 2 files in the server:
$ nvr --remote file1 --remote file2
$ # Send keys to the current buffer of the server:
$ # Enter insert mode, enter 'abc', and go back to normal mode again:
$ nvr --remote-send 'iabc<esc>'
$ # Evaluate any VimL expression.
$ # Get all listed buffers:
$ nvr --remote-expr "join(sort(map(filter(range(bufnr('$')), 'buflisted(v:val)'), 'bufname(v:val)')), "\""\n"\"")"
.config/git/config
vim/vimrc
zsh/.zprofile
See nvr -h for all options.
Demos
(Click the GIFs to watch them full-size.)
Using nvr from a different window (another tmux pane in this case):
Using nvr from within Neovim:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for neovim_remote-1.3.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4090fcac13272c299ec577042cd9f91ef3053c4ee7641750f4d3bc724c4b7386 |
|
MD5 | ba9a60cf14628370dd78a6f51ce22aee |
|
BLAKE2b-256 | 963df816b3ac8eb83ded906ee5638dbf4b60794b56645f052fa3ee9898df799e |