Is it possible to use vim to allow multiple people editing a single file?

287 views
Skip to first unread message

Peng Yu

unread,
Jan 17, 2016, 2:09:03 PM1/17/16
to vim_use
Hi, things like google drive allow multiple people to edit one
document at the same time. I am wondering if there is something in vim
that can help with this as well. Does anybody know? Thanks.

--
Regards,
Peng

Justin M. Keyes

unread,
Jan 17, 2016, 11:56:03 PM1/17/16
to vim_use
Are you aware of https://floobits.com/help/plugins/nvim ?

Justin M. Keyes

Ben Fritz

unread,
Jan 18, 2016, 11:10:07 AM1/18/16
to vim_use

There was a net proof-of-concept a while back that I *think* was developed into a functional plugin. I'm not sure whether it is still maintained, the last commit was a while ago:

https://github.com/FredKSchott/CoVim

Other ideas depending on your OS may include sharing a screen session, etc. as suggested here: http://superuser.com/questions/231892/vim-multiuser-editing

Good search terms to use for this feature would be "collaborative editing in Vim" or similar.

Justin M. Keyes

unread,
Jan 18, 2016, 1:58:28 PM1/18/16
to vim_use


On Jan 18, 2016 11:10, "Ben Fritz" <fritzo...@gmail.com> wrote:
>
> On Sunday, January 17, 2016 at 1:09:03 PM UTC-6, Peng Yu wrote:
> > Hi, things like google drive allow multiple people to edit one
> > document at the same time. I am wondering if there is something in vim
> > that can help with this as well. Does anybody know? Thanks.
> >
> > --
> > Regards,
> > Peng
>
> There was a net proof-of-concept a while back that I *think* was developed into a functional plugin. I'm not sure whether it is still maintained, the last commit was a while ago:
>
> https://github.com/FredKSchott/CoVim

CoVim, like floobits, is moving to Neovim:

https://github.com/FredKSchott/CoVim/issues/86

Peng Yu

unread,
Dec 10, 2018, 9:56:04 AM12/10/18
to vim_use
Hi,

I am wondering how to debug a vim plugin (for example, the following
one) in an efficient way.

https://github.com/Clavelito/indent-sh.vim/blob/master/indent/sh.vim

The main difficulty that I see is that a vim plugin is different from
a typical program is that in a typical programming language one can
easily isolate a piece of code and insert print statements. But in a
vim plugin, since it causes some effects in the code shown in vim, I
am not sure how a print statement can help much.

Also, in a regular programming language, one can run a function with
different parameters, then check its behavior. But a vim plugin is
just a whole piece of code, it is not clear how to run a piece of code
in an isolated environment to inspect its behavior.

Does anybody have any tips on how to debugging vim plugins? Thanks.

--
Regards,
Peng

Tony Mechelynck

unread,
Dec 10, 2018, 10:14:27 AM12/10/18
to Peng Yu, vim...@googlegroups.com, Charles E. 'Dr. Chip' Campbell, Ph.D.
Debugging Vim-script language is Dr. Chip's province; he even wrote a
script to help debug other scripts. You may already check if
http://www.drchip.org/astronaut/vim/#DECHO helps you, otherwise I'm
adding Dr. Chip as Cc in case he might have other helpful information
for you.

Best regards,
Tony.

Luc Hermitte

unread,
Dec 10, 2018, 10:31:47 AM12/10/18
to vim use
Hi,

> I am wondering how to debug a vim plugin (for example, the following
> one) in an efficient way.
>
> [...]
>
> Does anybody have any tips on how to debugging vim plugins? Thanks.


In my lh-vim-lib [1] library plugin I provide two sets of tools
- log functions [2] that can fill the qf window with the log messages automatically -- other logging frameworks fail to automatically link to the line where the log is emitted
- assert functions [3] for doing some design by contract. They permit to fail fast in case of unexpected value detected / dump the current callstack / start the debugger

It also provides a function that decodes displayed callstacks on error [4]

I also use a unit test framework [5] for unit testing functions.

[1] https://github.com/LucHermitte/lh-vim-lib
[2] https://github.com/LucHermitte/lh-vim-lib/blob/master/doc/Log.md
[3] https://github.com/LucHermitte/lh-vim-lib/blob/master/doc/DbC.md
[4] https://github.com/LucHermitte/lh-vim-lib/blob/master/doc/Callstack.md#lhexceptionsay_what
[5] https://github.com/LucHermitte/vim-UT

HTH,

--
Luc Hermitte

Marc Weber

unread,
Dec 10, 2018, 1:12:47 PM12/10/18
to vim_use

Bram Moolenaar

unread,
Dec 10, 2018, 3:12:54 PM12/10/18
to vim...@googlegroups.com, Peng Yu
Besides what's already said, if you just want a simple way to log some
text, you can use the mechanism for channels:

ch_logfile('SomeFileName', 'w')
ch_log('This happened')

Messages are written to a log, thus this also works for things like
autocomplete. It will include time stamps, which are often useful.

--
An easy way to determine if you have enough teamwork to be doomed is simply to
measure how long it takes from the time you decide to go to lunch together
until the time you actually eat.
(Scott Adams - The Dilbert principle)

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

Charles E Campbell

unread,
Jan 29, 2019, 2:32:40 PM1/29/19
to Tony Mechelynck, Peng Yu, vim...@googlegroups.com
Hello:

Decho.vim would be my suggestion, too.  Decho provides several ways to
help you get your debugging information out; a separate window on the
current tab, a separate tab, via vim's messages facility, and to a
remote vim.  The latter provides the most isolation of debugging output
capture from effects on the script's display.

Regards,
Chip Campbell
Reply all
Reply to author
Forward
0 new messages