【问题标题】:To vimdiff changed files at Dropbox by Vim通过 Vim 在 Dropbox 上 vimdiff 更改文件
【发布时间】:2009-08-08 20:05:30
【问题描述】:

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

然后我需要按

L 

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

然而,这个过程对我来说变得越来越困难,因为编辑的速度越来越快。 我愿意

 vimdiff [file_with_my_edits] [file_with_my_friend's_edits] 

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

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

【问题讨论】:

    标签: vim vimdiff


    【解决方案1】:

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

    【讨论】:

    • +1。我无法想象尝试同时编辑本质上是网络驱动器上的共享文件。
    • 我使用 Git,但我没有设法让我的队友推送到我的 git-repo 以便我识别每个编辑。这表明我们显然应该有两个具有相同基础的回购。但是,我不确定如何将他的更改与我的基础进行比较。我知道opendiff file1 file2。我显然应该opendiff my_branch his_branch。但是,我不知道该怎么做。
    • 也许如果您将 git 存储库放在 Dropbox 上,并且双方都有自己的签出,然后分别推送到 Dropbox 上的那个?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      虽然我同意你应该使用源代码管理,但你想要的可以在 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(打开右侧的差异)

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

      【讨论】:

      • 这是我一直在使用的程序。我使用 Git 进行个人源代码控制。 -- 我需要解决如何让我朋友的分支到我的电脑。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多