Niche Vim/Neovim Plugins

Overview
In few of my earlier articles, I demonstrated how to set up LSP, DAP and Fuzzy Finder for Neovim, plugins to help you code faster, and also how to convert .vimrc/init.vim to init.lua. In this article, let’s explore a few niche Neovim plugins which serve very specific purposes.
For the demonstration, I am going to use the Lua based configuration I crafted in my earlier article. Of course you can install these plugins using Vim built-in packages support (:h package
), or any other plugin managers like vim-plug.
Firenvim
Firenvim turns browser into a Neovim client. Just click on any textarea
and it will be immediately replaced by an instance of Firenvim. For those who do a lot typing or online coding in Chrome or Firefox (current supported browsers), you will find this plugin very useful.
Besides installing the Neovim plugin, you will also need to install the Firenvim add-on for your browser from Mozilla or Google.

vim-oscyank
vim-oscyank is a Vim/Neovim plugin to copy text to the system clipboard from remote SSH session using the ANSI OCS52 sequence.
OSC stands for Operating System Command, a category of ANSI escape sequences which instruct the terminal emulator to perform certain actions.
OSC52 is one of these sequence and it tells the terminal that the string it carries must be copied to the system clipboard.
If you day to day work requires you to log into remote servers via a terminal emulator, perform some tasks and copy text from remote servers to local machine’s clipboard, then this plugin will be very useful for you.
vscode-neovim
This is not really a Neovim plugin but a plugin for Visual Studio Code. Just like Firenvim which embeds Neovim in browsers, vscode-neovim embeds Neovim into Visual Studio Code.
This plugin is for those who want full Neovim experience in Visual Studio Code.
VSCodeVim also support Neovim integration but is still in experimental stage.

Vimpeccable
Vimpeccable is a plugin for Neovim that allows you to easily replace your Vimscript-based .vimrc
/init.vim
with a Lua-based one. Vimpeccable adds to the existing Neovim Lua API by adding new Lua commands to easily map keys directly to Lua.
If you want a Lua based configuration without going too deep into Lua and the Neovim APIs, this plugin is for you. It mirrors the standard Vim APIs and has all the variations of nnoremap
, nmap
, xnnoremap
, etc. that you probably are already familiar with.
Jupyter-Vim
Jupyter-Vim provides a two-way integration between Vim and Jupyter. Develop code on a Jupyter notebook without leaving the terminal. Send lines from Vim to a Jupyter console/Qt-console. Have a MATLAB-like “cell-mode”.
If you need seamless integration between Jupyter and Vim/Neovim, then this plugin is for you.
For this plugin to work, make sure you install Jupyter Console or Qt Console.
Once configured, you can run selected lines of codes or send the entire file to Jupyter console.

codi.vim
codi.vim provides an interactive scratchpad for hackers, with a similar interface to Numi. It opens a pane synchronized to your main buffer which displays the results of evaluating each line as you type (with NeoVim or Vim with +job
and +channel
, asynchronously). It's extensible to nearly any language that provides a REPL (interactive interpreter)!
Languages with built-in support: Python
, JavaScript
, CoffeeScript
, Haskell
, PureScript
, Ruby
, OCaml
, R
, Clojure
/ClojureScript
, PHP
, Lua
, C++
, Julia
, Elm
, Elixir
, TypeScript
, math.js
Below is a sample screen shot. You can see that the stdout
is immediately available to the right.
For developers preferring an interactive programming environment, this plugin could be of use to you.

vim-slime, neoterm, vim-floaterm
Similar to jupyter-vim which integrates Vim with Jupyter, vim-slime integrates Vim with a REPL which could be in Python, R, Clojure, etc.
You can configure the target to be GNU screen, tmux, Vim terminal, Neovim terminal, kitty, conemu, etc.
In below screen I configured the target to be Neovim terminal and I started a Python REPL in the terminal. I can then press C-c C-c
to send the Python code to the REPL.

neoterm allows you to use the terminal for everything. The main purpose for this plugin is to reuse the terminal easily. All commands open a terminal if one does not already exist.
- Neovim/Vim terminal helper functions/commands.
- Wraps REPLs to receive current file, line or selection.
- Multiple terminals support.
In below screen I use neoterm commands (TREPLSendFile, TREPLSendLine, TREPLSendSelection
) to send the code to a Python REPL.

Another option for you is vim-floaterm which also allows you to send code to a floating terminal with REPL running. In below screen, I use the FloatermSend
command to send the Python code to the pop-up REPL.

vim-tex
For those who write technical or scientific documentation using LaTeX, VimTex could be useful for you. Besides being a filetype and syntax plugin for LaTeX files, it integrates with other tools for document compilation and PDF viewing.

Summary
Personally I find vim-oscyank helpful for me as my job requires me to log in to servers, and frequently I need to copy text to my local machine.
The dotfiles I used in this article can be found at this repository.
Do check out the following articles.