1

自从我使用 Dropbox 以来,我经常收到 Vim 通知我的文件已在其他地方更改。

然后我需要按

L 

因为这是我查看朋友更改的文件的唯一方法。这迫使我使用他的版本,然后尝试记住我所做的更改。

然而,这个过程对我来说变得越来越困难,因为编辑的速度已经提高了。我想

 vimdiff [file_with_my_edits] [file_with_my_friend's_edits] 

不知何故,我的朋友的版本与我当前的文件有一些新的编辑。

当版本基础相同但当前文件不同时,您的当前文件如何vimdiff与您朋友的文件不同,而不会丢失任何编辑?

4

3 回答 3

8

如果两个(或更多)人同时处理一个文件,你应该使用一个版本管理系统,比如 subversion 或 git。正如您已经看到的,Dropbox 不是这种情况下的解决方案。

于 2009-08-08T20:12:01.363 回答
6

这个 vim 提示提供了一个函数来区分当前缓冲区和磁盘上的文件。它旨在向您显示自上次保存以来所做的编辑,但它也会向您显示您的朋友所做的编辑。

于 2009-08-08T21:02:20.670 回答
1

虽然我同意你应该使用源代码管理,但你想要的可以在 vim 中完成。您可以选择不加载您朋友的编辑,将您的编辑保存到新文件,然后使用 vimdiff。你甚至可以在不离开 vim 的情况下完成所有这些操作:

  1. :w file_with_edits.new(将您的更改保存到新文件)
  2. :e file_with_edits(丢弃您的更改)
  3. :diffthis(打开当前缓冲区的差异)
  4. :vsplit(打开垂直拆分,在两个窗口中显示当前文件)
  5. ^w, right(切换到右侧分割)
  6. :e file_with_edits.new(打开您的更改)
  7. :diffthis(打开右侧的差异)

话虽如此,源代码控制使这种事情变得微不足道(这是它的主要目标之一)。

于 2009-08-08T20:56:12.413 回答