What is CoVim?

CoVim is a real-time collaborative plain text editor converted from single-user Vim the editor. With CoVim, multiple users can edit the same plain text document at anytime (the same time or different time) over the Internet. Changes made to the document are immediately displayed for all users to see. Moreover, CoVim retains the "look-and-feel" and functionalities of Vim the editor, so that existing Vim users can enjoy the power of advanced collaborative techniques without the need of learning a new system.

More details about CoVim features can be found in:
- CoVim Collaboration Features
- CoVim Editing Features


Center Align

A screen shot of CoVim. Two users are editing the same document at the same time using CoVim. (Click to enlarge)

What is the technology behind CoVim?

CoVim is powered by GCE (Generic Collaboration Engine), which encapsulates a comprehensive collection of state-of-the-art collaborative technologies and can be used to support a wide range of advanced collaborative applications. The technology that glues GCE and Vim the editor together to make CoVim is Transparent Adaptation (TA). It enables us to convert existing single-user applications into advanced collaboration tools without making any change to the source code of the original application.

The TA-based CoVim architecture consists of three components, as shown below:

Center Align

TA-based CoVim architecture
  1. Single-user Application Vim provides conventional single-user interface features and functionalities. This component is unaware of multi-user collaboration.

  2. Collaboration Adaptor for Vim bridges the single-user application Vim with the underlying GCE. This component uses the Vim API (Application Programming Interface) to augment the Vim with collaboration capabilities without accessing the source code of the Vim.

  3. Generic Collaboration Engine (GCE) provides application-independent collaboration capabilities in consistency maintenance, concurrency control, group awareness, interaction control, etc. This component can be shared by a wide range of TA-based collaborative applications. The cornerstone of GCE is Operational Transformation.

Technological background about CoVim can be found in:

C. Sun, S. Xia, D. Sun, D. Chen, H.F. Shen, W. Cai: "Transparent adaptation of single-user applications for multi-user real-time collaboration," ACM Transactions on Computer-Human Interaction,  Vol. 13, No.4, December 2006, pp.531-582.