You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Marco Hinz d206e65548 README: add nicer header logo 9 years ago
pictures README: add nicer header logo 9 years ago
CHANGELOG.md Release 1.1 9 years ago
LICENSE Add LICENSE 9 years ago
README.md README: add nicer header logo 9 years ago
nvr Remove obsolete run_nvim() 9 years ago

README.md

Logo

Intro

nvr is a tool that helps controlling nvim processes.

It basically does two things:

  1. adds back the --remote family of options (see man vim)
  2. 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

Assuming ~/bin is in your $PATH:

1) Install the Python provider for Neovim:

$ pip3 install neovim

2a) Using the git repo:

$ mkdir -p ~/github
$ git clone https://github.com/mhinz/neovim-remote.git ~/github/neovim-remote
$ ln -s ~/github/neovim-remote/nvr ~/bin/nvr

2b) Download the script directly:

$ # Or alternatively:
$ curl -Lo ~/bin/nvr https://raw.githubusercontent.com/mhinz/neovim-remote/master/nvr

3)

$ chmod 700 ~/bin/nvr

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 fullscreen.)

Using nvr from a different window (another tmux pane in this case): Demo 1

Using nvr from within Neovim: Demo 2