Skip to content

neovim/neovim-ruby

Folders and files

NameName
Last commit message
Last commit date
May 26, 2024
May 3, 2020
Mar 30, 2025
Mar 2, 2025
Jun 10, 2024
Feb 21, 2022
Jun 10, 2024
May 11, 2020
Feb 21, 2022
May 26, 2024
Jan 31, 2018
May 13, 2014
Jun 10, 2024
Sep 10, 2021
Mar 2, 2025

Repository files navigation

Neovim Ruby

Build Status Gem Version

Ruby support for Neovim.

Installation

Add this line to your application's Gemfile:

gem "neovim"

And then execute:

bundle

Or install it yourself as:

gem install neovim

Usage

Neovim supports the --listen option for specifying an address to serve its RPC API. To connect to Neovim over a Unix socket, start it up like this:

$ nvim --listen /tmp/nvim.sock

You can then connect to that socket path to get a Neovim::Client:

require "neovim"
client = Neovim.attach_unix("/tmp/nvim.sock")

Refer to the Neovim docs for other ways to connect to nvim, and the Neovim::Client docs for a summary of the client interface.

Remote Modules

Remote modules allow users to define custom handlers in Ruby. To implement a remote module:

  • Define your handlers in a plain Ruby script that imports neovim
  • Spawn the script from lua using jobstart
  • Define commands in lua using nvim_create_user_command that route to the job's channel ID

For usage examples, see:

Note: Remote modules are a replacement for the deprecated "remote plugin" architecture. See neovim/neovim#27949 for details.

Vim Plugin Support

The Neovim gem also acts as a compatibility layer for Ruby plugins written for vim. The :ruby, :rubyfile, and :rubydo commands are intended to match their original behavior, and their documentation can be found here.

Links

Contributing

  1. Fork it (https://github.com/neovim/neovim-ruby/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request