【问题标题】:"More than two buffers in diff mode" - How do you turn off diff on the buffers?“差异模式下有两个以上的缓冲区” - 如何关闭缓冲区上的差异?
【发布时间】:2012-10-27 04:50:29
【问题描述】:

我做了:vert diffsplit file1.txt,然后意识到我不想区分它而是一个不同的文件。所以我用:q 关闭了一个窗口,并用:diffoff 关闭了差异突出显示。

然后我尝试:vert diffsplit file2.txt,但现在如果我尝试dpdo 来放置/获取更改,我会收到E101: More than two buffers in diff mode, don't know which one to use 错误。

我该如何避免这种情况,或者我做错了什么?

【问题讨论】:

    标签: vim vimdiff


    【解决方案1】:

    您应该使用:diffoff 关闭不需要的缓冲区的差异模式 使用:q 退出它之前。根据您的设置(例如:set hidden),缓冲区将保留在缓冲区列表中(:ls),Vim 会在进行 diff 时考虑它。

    :bufdo diffoff 应该关闭所有现有缓冲区的差异,但如果出现这种情况,我通常会退出 Vim 并使用 vimdiff ... 重新启动它。

    【讨论】:

    • 我有时会在打开许多其他选项卡的情况下在 gvim 中进行比较。我对 vimdiff 的正常解决方案只是退出,但对于 gvim 这并不理想。谢谢!
    • 在退出任何窗口之前,请执行:diffoff! 或简称:diffo!。这将为当前标签页中的所有窗口打开差异模式。见:h :diffo
    • 我尝试过:diffoff!它仍然没有工作。不得不做:buffo diffoff。一旦我这样做了,我发现我左侧拆分中的缓冲区仍处于差异模式。所以在那个缓冲区上我做了一个 :diffoff 然后能够在另外两个缓冲区中成功地做 :diffthis 并进行更改。
    【解决方案2】:

    这可能是一种迟到的答复,但仍待将来参考

    我愿意

    :tabdo diffoff!
    

    【讨论】:

      【解决方案3】:

      记下您要通过:ls 命令放置/获取更改的缓冲区号。

      然后在您的 put/get 命令前加上您选择的缓冲区编号,例如2dp.

      来源:Vimdiff with multiple buffers

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-03
        • 1970-01-01
        • 2018-01-14
        • 1970-01-01
        • 1970-01-01
        • 2012-03-09
        • 1970-01-01
        相关资源
        最近更新 更多