Need help with vim-ghost?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

237 Stars 11 Forks 96 Commits 6 Opened issues


Vim/Nvim client for GhostText - Edit browser text areas in Vim/Neovim

Services available


Need anything else?

Contributors list

= Vim Ghost

Edit browser textarea content in Vim/Neovim!

[.center.text-center] image::[demo,100%]

. Install this[firefox addon] or this[Chrome extension] . Add this plugin +

" Vim-plug
Plug 'raghur/vim-ghost', {'do': ':GhostInstall'}
. Ensure you have a vim/neovim instance open. Run
to start the server. . On any textarea, click the ghost icon - switch to neovim and edit!. Content is sync'ed real time. Works both ways - edits in the browser window are pushed to neovim as well. . When done, just delete the buffer with
- you'll be disconnected

== Configuring filetype Whenever a buffer is connected, a

is raised. Here's a quick sample of setting filetype to
if the textarea was on github or reddit
function! s:SetupGhostBuffer()
    if match(expand("%:a"), '\v/ghost-(github|reddit)\.com-')
        set ft=markdown

augroup vim-ghost au! au User vim-ghost#connected call s:SetupGhostBuffer() augroup END

== Requirements

  • Recent neovim/vim
  • Python 3.4+
  • Python plugin host -
    python3 -c 'import pynvim'
    should not error
  • Python websocket server ** This is automatically installed as a
    pip --user
    dependency when

=== additional requirements for vim



" Only enabled for Vim 8 (not for Neovim). Plug 'roxma/nvim-yarp', v:version >= 800 && !has('nvim') ? {} : { 'on': [], 'for': [] }

Plug 'roxma/vim-hug-neovim-rpc', v:version >= 800 && !has('nvim') ? {} : { 'on': [], 'for': [] }

== Auto switching to vim:

.Optional, but highly recommended - Switching focus to Neovim * Linux: The

command - if available, will be used to focus the nvim window. Works in console, tmux or guis like neovim-qt ** On Ubuntu, you can install it with
sudo apt-get install xdotool
* macOS: Set the
variable to the name of your app (see docs). * Windows: If pywinauto ( is available, it will be used to bring the neovim-qt to foreground. +


Ensure that you install this module for the version of python

that is loaded in neovim

pip install pywinauto

Limitations: Currently, on windows, the processname is hardcoded to nvim-qt If you use any of the other GUIs for neovim (OniVim, gonvim etc) then this will not work.

== Rationale

With Firefox moving to webextensions, It's all text is dead. Typing in text areas is a royal PITA and I was looking for a replacement. Came across GhostText - but the vim addon seems dead and uses tcl :ugh:

My vimscript fu is pretty limited - so I thought I'd write a python plugin for neovim.


PR's welcome. Some areas:

  • [.line-through]#vim compatibility# - DONE

Love it or just find it as useful as I do? Star this repo to let me know

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.