Skip to content

shubhamgupta731/vim-mode

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is this?

This is a work in progress Atom package that implements complete vim bindings by connecting to Neovim.

What's new?

I've update everything to work with the version in master of Neovim

On the Atom side I've tested it with version 0.175 and 0.184 and seems to work fine. I am currently using version 0.207. In versions 0.206 and later you will need to change the name of the directory vim-mode to something else (I use the name nvim-mode). I you don't Atom confuses this plugin with the one developed by GitHub.

It should be usable enough that if you are adventurous you will be able to get day-to-day work done. There are, however, plenty of features missing, so you will have to be patient when you use it.

How do you run this?

Install, run, and quit Atom to make sure .atom exists

Install vim-mode

$ cd .atom/packages
$ git clone https://github.com/carlosdcastillo/vim-mode.git
$ cd vim-mode
$ apm install # install dependencies

On OS X and Linux, create a folder for the named pipe:

$ mkdir -p /tmp/neovim

Run Neovim, pointing it to the named pipe, on OS X and Linux:

$ NVIM_LISTEN_ADDRESS=/tmp/neovim/neovim nvim 

The equivalent in Windows (define an environment variable and point it to the named pipe) is:

set NVIM_LISTEN_ADDRESS=\\.\pipe\neovim

and then

nvim.exe

What do you want to do with this?

This project aims to:

  • Bring real vim bindings to Atom.
  • Give the abstract-ui Neovim functionality a work out and find issues using the msgpack api.
  • Eventually build an editor that I would find useful. At the current state it is pre-alpha.

See it in action

A video that shows the current (June/2015) status:

http://youtu.be/FTInd3H7Zec

A video that shows the integration in action in March/2015:

https://www.youtube.com/watch?v=7TVBcdONEJo

An older video from January of the integration in action, using the abstract-ui branch:

https://www.youtube.com/watch?v=yluIxQRjUCk

and this is an old video from 2014 using the old redraw-events branch (from mid 2014):

http://www.youtube.com/watch?v=lH_zb7X6mZw

Things TO DO

  • Fix hiccups when editing a new file (a new tab with title undefined is created)
  • Make the geometry of the Atom buffer fully match the geometry of the Neovim buffer.
  • Handle files of more than 9999 lines.
  • Handle (or handle better) Atom initiated cursor position changes.
  • Make one of the following UI connections/integrations: visual selection, highlight search, auto completion, etc.

Contributing

  1. Find something that doesn't work (this step shouldn't be that hard, plenty of things don't work yet)
  2. Either (a) fix it and send me a pull request or (b) file a bug report so I know it needs to be fixed.

Configuring Atom

To make sure that hjkl get repeated like (Vim and Neovim) on Mac you will need to run (from the command line):

defaults write com.github.atom ApplePressAndHoldEnabled -bool false

About

Next generation vim support for atom

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • CoffeeScript 96.2%
  • CSS 3.8%