• Stars
    star
    165
  • Rank 228,906 (Top 5 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 10 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Floobits plugin for NeoVim

Floobits NeoVim Plugin

Floobits Status

Real-time collaborative editing. Think Etherpad, but with native editors. This is the plugin for NeoVim which replaces our Vim plugin. We also have plugins for Emacs, Sublime Text, and IntelliJ, as well as a web-based editor that supports video chat and screen sharing.

Development status: fairly stable, should work.

Installation

Install the plugin in one of the ways described below and then run :UpdateRemotePlugins in Neovim. For the next step please restart neovim. You will need to rerun this command whenever there are updates for the Floobits plugin. Please see :he remote-plugin for more information.

Python

Python is required, please see he: nvim-python for instructions.

Vundle

Recommended

Using Vundle, add this to your Vundle section in ~/.config/nvim/init.vim:

Plugin 'floobits/floobits-neovim'

Consult the Vundle Readme for how to set up Vundle.

Please make sure your Vundle is up to date!

Manual (Not recommended)

Clone:

cd ~/.config/nvim/rplugin
git clone https://github.com/Floobits/floobits-neovim.git

Move or symlink the rplugin/python directory contents and plugin directories into your ~/.nvim directory. You will not get updates this way. You should use vundle. You could symlink these files but then if we add new files or directories you would have problems.

Setting up the plugin

{
  "auth": {
    "floobits.com": {
      "username": "your_username",
      "api_key": "your_api_key",
      "secret": "your_api_secret_not_your_password"
    }
  }
}

Usage

  • :FlooShareDirPublic /path/to/files. Share a directory with others. This will create a new workspace, populate it with the files in that directory, and open the workspace's settings in your browser.
  • :FlooShareDirPrivate /path/to/files. Share a directory with others. This will create a new workspace, populate it with the files in that directory, and open the workspace's settings in your browser.
  • :FlooJoinWorkspace https://floobits.com/owner/workspace_name. Join a Floobits workspace. Workspace URLs are the same as what you see in the web editor.
  • :FlooLeaveWorkspace. Leave the workspace.
  • :FlooToggleFollowMode. Toggle follow mode. Follow mode will follow the most recent changes to buffers.
  • :FlooSummon. Make everyone in the workspace jump to your cursor.
  • :FlooDeleteBuf. Delete the current buffer from the workspace.
  • :FlooAddBuf. Add a buffer to the workspace. If no buffer is specified, the current buffer is used.
  • :FlooRefreshWorkspace. Scan local workspace copy for changes and prompt to overwrite local/remote if files differ. Useful after switching branches in git.

Typical workflow goes something like this:

  1. Either create a workspace or join one (:FlooShareDir... or :FlooJoinWorkspace)

  2. If you're joining and your local files differ from the workspace, you'll be asked which copy you want to keep.

  3. As you pair, occasionally you'll want to show your colleague some code in another file. Use FlooSummon for this.

  4. Unfortunately, neither Vim nor Neovim has hooks for when new files are created. You'll have to add new files to the workspace manually, either by saving them (:w) or with :FlooAddBuf.

  5. When you're done pairing, you can leave the workspace with :FlooLeaveWorkspace or by quitting your editor.

Troubleshooting

If you experience problems, try disabling other plugins before submitting a bug report. You can also get a hold of us using IRC, Twitter, or e-mail.

Removing the plugin

After removing the plugin from vundle you must again call :UpdateRemotePlugins. The plugin may generate the following files and directories:

~/.floorc.json
~/floobits

You may wish to delete these after removing this plugin.

More Repositories

1

floobits-sublime

Floobits real-time collaboration plugin for Sublime Text 2 and 3
Python
294
star
2

floobits-vim

Floobits Vim Plugin
Python
247
star
3

floobits-atom

Remote pair programming plugin for Atom.
JavaScript
237
star
4

floobits-intellij

Real-time collaborative editing plugin for IntelliJ
Java
225
star
5

flootty

A collaborative terminal.
Python
174
star
6

floobits-emacs

Floobits plugin for emacs
Python
146
star
7

floomatic

A floobits workspace/disk watcher with hooks.
JavaScript
41
star
8

diffshipper

Keeps files synced in realtime between many computers. This is fall-back for editors without a Floobits plugin.
Lua
36
star
9

vim

A fork of Vim supporting async operations.
C
30
star
10

floobits-vscode

Not ready. Don't get your hopes up.
JavaScript
21
star
11

sublime-text-3-plugin

Obsolete repository. All code has been moved to https://github.com/Floobits/floobits-sublime/
Python
11
star
12

node-fleece

Node.js/io.js module. Fetch and describe URLs (Tweets, GitHub repos, YouTube videos, etc). Useful for IRC bots.
JavaScript
9
star
13

node-native-dmp

Native Node.js module for diff-match-patch
C++
8
star
14

flukes

An implementation of the flux architecture for React.
JavaScript
8
star
15

dmp

Diff Match Patch in Node.js/io.js
JavaScript
7
star
16

floobits-vs

Floobits plugin for Visual Studio
C#
5
star
17

chrome-screenshare

Chrome screen sharing extnesion
JavaScript
4
star
18

plugin-common-python

Python code shared between Floobits plugins for Sublime Text, Emacs, and Vim.
Python
4
star
19

colab

bringing the cloud to your ide
JavaScript
3
star
20

news

Floobits News
HTML
3
star
21

gurgitator

Watch for new files, then eat them and run them
JavaScript
3
star
22

floobot

Floobits internal IRC bot
JavaScript
3
star
23

eclipse

Floobits plugin for eclipse.
Java
3
star
24

floobits-vsp

Visual Studio Plugin for Floobits
C#
2
star
25

eslint-config

ESLint config for Floobits JavaScript projects
JavaScript
1
star
26

colabalancer

JavaScript
1
star
27

floorine

Node.js logging thing
JavaScript
1
star
28

js-git-ignore

Pure JS implementation of Git Ignores
JavaScript
1
star
29

github-stats

Generates stats.
JavaScript
1
star