CoVim:Vim编辑器的协作编辑插件
(转)伯乐在线注:本文综合编译自 fredk schott 发的公告和 CoVim 的使用说明。
今天我们宣布推出 CoVim 插件,提供多用户、实时协作功能,用于你最喜欢(或最不喜欢)的文本编辑器。CoVim 可让你远程编码、写作、编辑和协作等。该插件最初源于塔夫茨大学的一个高级项目,我们现在把它开源在 GitHub。CoVim 所具备的特性,也是 Vim 7.4 版呼声最高的需求之一。(请参见伯乐在线之前的翻译报道)。
我几乎在一年前开始参与 CoVim。我是想探索“共享课堂笔记平台”概念(顺带说一下,有人应该继续做这个),而我的项目搭档 Sam Haney 想着探索稍微更知名和更可靠的东西。所以我俩决定各退一步,于是乎 CoVim 就诞生了。
CoVim 的特性
- Allows multiple users to connect to the same document online 允许多用户连接到相同文档;
- Displays collaborators with individual cursors 用独立光标区分显示协作者;
- Works with your existing configuration 和现有 Vim 配置兼容;
- Easy to set up & use 易于安装和使用
安装
CoVim 需求编译版的 Vim,Python 2.5+。如果启动 Vim 有问题,请访问 FAQ / Troubleshooting 。Twisted 库也可用 via apt-get & yum 和 pip 来安装。
用 Pathogen 安装:
1
2
3
|
pip install twisted
cd ~/.vim/bundle
git clone git://github.com/FredKSchott/CoVim.git
|
用 Vundle 安装:
1
2
3
|
pip install twisted
Add Bundle'FredKSchott/CoVim'to your ~/.vimrc
vim +BundleInstall +qall
|
手工安装:
1
2
|
pip install twisted
Add client.vim & server.py to ~/.vim/plugin/
|
用法
启动 CoVim 服务器: :CoVim start [port] [name] (or, from the command line: ./server.py [port])
连接正运行的服务区: :CoVim connect [host address / 'localhost'] [port] [name]
断开连接: Quit Vim or :CoVim disconnect
How it Works
Vim 有内置的 Python 脚本,所以 Python 显然就是我们项目的选择。至于网络工具,我们用了 Twisted,一个强大的事件驱动网络引擎,也是用 Python 实现的。无论何时,用户对文档做出更改,或移动光标,客户端向服务器发送一个更新。服务器更新所有光标位置,然后给其他客户端发送更新。
所有更新都在 Vim 的缓冲区中,缓冲区就是文档文本的工作副本。现在也不是Bug或特性的问题,就是 Vim 如何展现文档的进展。记着保存,这是用户的职责。当然了,用户可随时保存想保存的东西。
使用场景
虽然CoVim看着显然很酷,但这并不能证明我们这一年的辛苦工作。所以要想想,我们能用 CoVim 来做神马?
我们最初着手解决的问题,也是困扰学生们的问题——在一台电脑上结对编程的烦恼。结对编程是一种很好的编程技艺,把令人沮丧的工作变成团队的努力,不过其物理局限性也让人头疼。就一台电脑和一个键盘,所以空间局限和切换人员中断了创意流。有了 CoVim,你就有了自己的屏幕和键盘,空间也再小了,切换人员时,也不会再浪费时间了。
学生并不是唯一受益的群体。教学助理(助教)在办公时,可以用 CoVim 来帮助多位学生;教授无需离开办公室,也可在学生们的代码中“穿梭”。其实助教完全可以远程办公,不管他们什么时候有时间。(这个点子好么?或许不是,但这绝对是 CoVim 在学术界的一个好例子。)
公司同样也能从 CoVim 受益。有问题,去办公室中一个个问?不用尝试去抽象描述问题,直接打开 Vim,让他们看看问题代码。你们公司在实践代码审查(code review)么?直接一起看代码,反馈也可通过一行又一行的内容展现。让共享代码变得容易,将增加任何公司中的协作,这意味着更好的代码质量和更大的成绩。
CoVim 的源码
CoVim 已放在 Github 了,陆续还有更多特性中(包括聊天、注释和管理员工具),所以请持续关注。
协作愉快!
英文原文:fredk schott,编译:伯乐在线-黄利民
译文链接:http://blog.jobbole.com/39821/