Niche Vim/Neovim Plugins

Niche Neovim Plugins — Firenvim screen

Overview

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

Besides installing the Neovim plugin, you will also need to install the Firenvim add-on for your browser from Mozilla or Google.

Online Coding using Firenvim

vim-oscyank

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 plugin is for those who want full Neovim experience in Visual Studio Code.

VSCodeVim also support Neovim integration but is still in experimental stage.

Neovim in VSCode

Vimpeccable

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

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.

Vim Jupyter Console Integration

codi.vim

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.

Python with code.vim

vim-slime, neoterm, vim-floaterm

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.

vim-slime Python 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.

neoterm

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-floaterm

vim-tex

vim-tex

Summary

The dotfiles I used in this article can be found at this repository.

Do check out the following articles.

Programmer and occasional blogger.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store