windows-xp - 为什么 "Diff with Vim"命令不起作用?

标签 windows-xp vim vimdiff

我在 WinXP 上运行 gVim。

我打开一个文件夹,选择两个文件,然后单击“Diff with Vim”。截图:

Vimdiff issue

gVim GUI 启动,每个文件都在其自己的选项卡中。我注意到每个选项卡都处于 DIFF 模式。但是,两个选项卡之间没有进行比较。这两个文件完全不同,但没有突出显示,什么也没有 - 只是左侧的一条灰线,我将其解释为“DIFF”模式:

Result of diff

这是怎么回事?我的 vimdiff 没有工作还是其他原因?


我的解决方案

早些时候,当我需要 Open files in multiple tabs using the Windows Context Menu ,我听从了海报的建议,并将以下行添加到我的 .vimrc 文件中::autocmd BufReadPost * tab ball

虽然这允许我在单个 Vim 窗口中的不同选项卡中打开两个文件,但如果我愿意,我将无法区分这两个文件。打开这两个功能的解决方案是仅在我不想diff这两个文件的情况下启用上面的autocmd,这发生在&diff ==0。因此,当我将 .vimrc 文件中的代码修改为以下内容时,我重新获得了 Diff with Vim 功能:

if (&diff==0)
    :autocmd BufReadPost * tab ball
endif

我还将此解决方案添加到 Vim Wikia link 的评论部分如上所述。

最佳答案

这充其量只是一个提示,因为我不运行 Windows,甚至不在 Linux 下使用 gvim。如果将选项 -p 提供给 vimdiff,它将在单独的选项卡中打开其参数。由于差异仅在同一选项卡中跨窗口进行,因此这有效地禁用了差异。 -p 仍然可用,因为 vimdiff 只是调用 vim -d ...-p 告诉 vim 将每个参数放在单独的选项卡中;在正常调用 vim 时非常有用。因此,您可能以某种方式将 vim 配置为始终执行此操作。

我会检查 Diff with Vim 选项实际上做了什么,并跟踪它以查看调用链中的批处理文件(或现在它们所称的任何东西......)是否正在添加正常调用 vim 的 -p 选项。 IIRC 您可以从 Windows 资源管理器执行此操作;我认为“查看”菜单中有一个选项可以显示所有文件类型。您可以查看和编辑配置为“打开”这些文件类型的应用程序。

关于windows-xp - 为什么 "Diff with Vim"命令不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5558112/

相关文章:

c++ - 探查器报告的时间与真实时间 - 为什么会出现差异?

vim:添加可点击标签

vim - 有没有办法在 Vim 的命令中引用当前选定的文本?

vim - vimdiff 是否支持合并差异

c# - Windows XP 的 .NET 进程问题

c++ - boost.asio 测试问题

asp.net - 我需要下载 Microsoft Internet Information Services 吗?

vim - 在 Vim 中,文件名的制表符补全不起作用

vim - 在 vimdiff 中将差异标记为 ok

linux - 如何忽略 diff 命令中的一些差异?