GithubHelp home page GithubHelp logo

vim-mode's Introduction

What is this?

This is a work in progress branch that shows how to make Atom talk 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.

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

Create a folder for the socket

$ mkdir -p /tmp/neovim

Run Neovim, pointing it to the socket

$ NVIM_LISTEN_ADDRESS=/tmp/neovim/neovim581 nvim -T abstract_ui

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 new video of the integration in action, using the abstract-ui branch:

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

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

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

Things TO DO

  • Handle Atom-centric text editing actions, i.e., situations like the user searching and replacing in Atom by hitting Cmd-F
  • Make the client use less CPU. It currently uses a lot of CPU, this could be a consequence of my limited CoffeeScript experience.

Contributing

  1. Find something that doesn't work (this step shouldn't be that hard, plenty of things don't work yet)
  2. Fix it.
  3. Send me a pull request.

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.