6

EmacsWiki: Collaborative Editing

 2 years ago
source link: https://www.emacswiki.org/emacs/CollaborativeEditing
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Collaborative Editing

Working solutions

  • If you use X then you can use ‘M-x make-frame-on-display’ (see EmacsManual:Multiple Displays) for collaborative editing or supporting newbie Emacs users remotely. See also Re: two people editing one document. The problem here is that connection issues can cause both frames to hang.
  • If you have emacs 23, multi-tty works like make-frame-on-display, except that each person needs to connect to your emacs. (This is somewhat similar to using screen, but each user can resize their terminal without affecting the others.) You can give each user their own colored “point” with JonathanRockway’s colorful-points mode. The connection can also be accelerated (reducing lag time over a slow connection) using mosh [1].
    • Anyone have a more detailed description of how to set this up?
  • xpra serves X11 windows efficiently over the net. Opening an emacs frame on a xpra server allows easy to use collaboration
  • GNU Screen is a terminal multiplexer. Run Emacs in console mode (emacs -nw) within screen for multi-user real-time collaborative editing (and much more). Works across *n*x, Mac OS X, even W32 (with Cygwin installed). Check out Bill Clementson’s awesome emacs/screen setup.
    • One minor problem is that screen has to run setuid root for users to share a screen session. An alternative is to use tmux for collaborative editing, which doesn’t have this requirement.

Abandoned

  • Rudel is a collaborative editing extension for GNU Emacs written purely in Emacs Lisp. It is designed to support multiple protocol backends to enable interoperability with other collaborative editors.
  • Obby is an open collaborative editor protocol. The reference implementation is called Gobby and is a cross-platform GTK editor. Rudel’s most complete backend implements the Obby protocol. Using this backend, Emacs can act as an Obby client and as an Obby server (possibly at the same time). Due to a limitation of gnutls-bin, the server does not support encryption. Unfortunately, connecting to infinoted, the reference implementation server, is currently broken (see Bug#30252).
  • Also ebby was an attempt to work with an older version of the Obby protocol; it’s now deprecated.
  • SubEthaEmacs is a (dead?) attempt to get Emacs to grok SubEthaEdit's closed collaborative editing protocol. The authors of SubEthaEdit are actively hostile to interop attempts.
  • LukeGorrie wrote shbuf http://www.bluetail.com/~luke/shbuf/ which formerly required erlang for the server (since emacs didn’t have server sockets) but I think it only requires gnumacs now (xemacs doesn’t have server sockets) --ShaeErisson [new] I just found this: http://verse.blender.org/cms/Overview.573.0.html Even though it seems aimed at 3D-development, the descriptions seems to suggest that the protocol is general.
  • Docsynch is an open cross-editor collaborative editing protocol that runs over IRC. Plugins exist for JEdit, vim and a few other editors, but only the JEdit version seems to be complete. Development seems stalled. (Last news item was dated 2004.)
  • Egret – An extension to XEmacs.
  • Shemacs is a tool implementing synchronous multi-user support for the Emacs editor using Egret, a client-server-agent framework for implementation of domain-specific, collaborative, hypertext systems.
  • Conspire mode achieves realtime, collaborative editing using git as a backend. Works only over a LAN. (No activity in since 2008)

To be confirmed

  • crdt.el is an work-in-progress collaborative editing mode by Qiantan Hong, based on the CRDT model instead of the OT model. As of 2020-10-11, the project is hosted here. There’s also discussion "Question collaborative editing - Wikipedia reference" on the Emacs Devel mailing list.
  • Lockstep synchronizes two frames (cursors and visible buffers) so that the “passenger” sees the edits of the “driver” in real time.
  • Togetherly - cleartext simple client/server model, emacs-only
  • Floobits provides real-time collaboration tools for a variety of editors including an Emacs plugin. Proprietary/commercial service. reports of problems in vim, unclear if it works well with Emacs.
  • Shared Buffer by Lars Tveito. “…still at an experimental stage”. Requires quicklisp and a Common Lisp to run the server (SBCL is recommended). As of 2019-09-30, most recent commit was in April 2014, and there is one issue filed in November 2018.

Future ideas

  • The Atom editor people wrote a protocol called Teletype that supposedly implements an editor-neutral robust collaborative editing protocol
  • Tandem is another such effort which currently supports Sublime Text 3, Neovim and (unofficially) Vim licensed under Apache 2.0

CategoryRemoteEmacs



Add Translation
Last edited 2020-10-11 19:52 UTC by 6315 (diff)

This work is licensed to you under version 2 of the GNU General Public License. Alternatively, you may choose to receive this work under any other license that grants the right to use, copy, modify, and/or distribute the work, as long as that license imposes the restriction that derivative works have to grant the same rights and impose the same restriction. For example, you may choose to receive this work under the GNU Free Documentation License, the CreativeCommons ShareAlike License, the XEmacs manual license, or similar licenses.

Please note our Privacy Statement.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK