问题标签 [vimdiff]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6702 浏览

vim - 让 gVim 的 vimdiff 忽略大小写

我正在尝试比较两个汇编文件,其中一个全部大写,另一个小写。许多行与大小写和空格相同。

我尝试了以下方法,而两个缓冲区处于差异模式:

空白的东西似乎运作良好,但忽略案例并没有发挥作用。例如,在以下两行中:

[第一行以 12 个空格开头,第二行以单个制表符开头]

为什么?我能做些什么?

更新:刚刚注意到在这两行中所有差异都被忽略了:

0 投票
1 回答
271 浏览

vim - 通过 Vim/gVim 中的函数调用激活备用 Diff 模式

最近的一个问题中,我询问了如何让 vimdiff 在比较时忽略多余的空格。在回答和进一步阅读之后,我尝试执行以下操作:

.1。找到 _vimrc并找到MyDiff()函数定义。它包含以下行:

if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif

.2. 复制中的函数MyDiff2()_vimrc同时将该行更改为:

if &diffopt =~ 'iwhite' | let opt = opt . '--ignore-all-space ' | endif

.3. 以 Diff 模式打开带有两个文件的gVim ,然后:

:set diffexpr=MyDiff2()
:set diffopt+=iwhite
:call MyDiff2()

并且:

:diffupdate

我希望这会使 vimdiff 忽略诸如: r3=r2;vs之类的差异r3 = r2;,但事实并非如此。这是为什么?

我的设置如下:
diffexpr=MyDiff2()
diffopt=filler,iwhite,icase

0 投票
4 回答
146310 浏览

linux - 如何在 Vimdiff 中展开/折叠差异部分?

我今天开始使用 vimdiff,并且想做一些我在基于 Windows 的差异编辑器上认为理所当然的事情(例如展开/折叠差异部分,具有完整的文件扩展/仅具有三个上下文行的差异或下面等)。我目前只知道以下命令:

键盘快捷键:

  • do- 从其他窗口获取更改到当前窗口。

  • dp- 将当前窗口的更改放入另一个窗口。

  • ]c- 跳转到下一个更改。

  • [c- 跳转到上一个更改。

  • Ctrl+ W, w- 切换到另一个拆分窗口(Ctrl+ W, Ctrl+做同样的事情,以防你稍后W放开键)Ctrl

有人可以指出我正确的方向,以便我可以复制类似的功能吗?

例如,如果我可以在差异周围展开/折叠线,那就太好了。

0 投票
5 回答
2120 浏览

vim - 有没有办法将多对文件排队以与 vimdiff 进行比较?

我有几十个文件需要与 vimdiff 进行比较和合并。有没有办法将成对的文件排队进行比较,以便我可以一次打开它们,而不是一次又一次地返回 shell 来打开每对文件?

这可以通过在自己的标签中打开每对来完成吗?我的外壳是 Bash。

0 投票
2 回答
2441 浏览

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

我在 WinXP 上运行 gVim。

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

Vimdiff 问题

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

差异的结果

到底是怎么回事?我的vimdiff不工作还是其他原因?


我的解决方案

早些时候,当我需要使用 Windows 上下文菜单在多个选项卡中打开文件时,我遵循了海报的建议,并将以下行添加到我的.vimrc文件中::autocmd BufReadPost * tab ball

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

我还在上面提到的Vim Wikia 链接的评论部分添加了这个解决方案。

0 投票
3 回答
25876 浏览

vim - 如何在 vimdiff 中的垂直分割和水平分割之间切换?

我已经知道如何使用该diffopt变量来启动具有水平/垂直拆分的差异模式,但当我已经打开两个文件进行比较时,不知道如何在两者之间切换。

我尝试了在这篇较旧的帖子中找到的已接受答案,但无济于事。Ctrl+W 命令对我不起作用。也许是因为我在 Windows 友好模式下运行 gVim?

0 投票
2 回答
619 浏览

windows - vim 中的不同窗口

我正在编写一个相当复杂的脚本。我怀疑有几个部分的代码几乎相同。我可以(以及如何)在vim中打开文件,缓冲区上有两个(或更多)窗口,并在同一个文件上区分窗口的内容吗?vimdiff 似乎只适用于两个文件。如果我制作文件的副本并尝试 vimdiff 两个版本,则差异来源仍锁定在文件的开头。虽然我可以取消滚动锁定窗口,并将窗口移动到我想要比较的文件部分,但没有显示出来。任何提示或提示?我可以将要比较的部分剪切并粘贴到不同的文件,然后应用 vimdiff,但是当我尝试将单独的文件修补在一起时,我可能会迷失在哪个部分来自哪里,我确信必须有一个更简单的,更简单的方法。

0 投票
1 回答
4436 浏览

linux - Vimdiff: How to put all changes inside a particular function from one file to another?

In Vimdiff, I know I can use "do" or "dp" to move changes from one file to the other...but these are for individual changes. If I have to undo all changes inside a specific scope/selection (say undo all changes to a particular function, but leave the rest untouched), is there a way to do it in one go ?

0 投票
4 回答
11461 浏览

vim - 使用 vimdiff 替换整个文件?

我正在使用 vimdiff 进行 git 合并。有没有一种快速的方法来选择要使用的 1 个文件,现在我只是从一个缓冲区中选择所有内容,用它替换 $MERGE,然后保存。我想我可以宏化,但想知道是否有更好的方法。谢谢!

0 投票
1 回答
228 浏览

mercurial - 自从编写 hg 书以来,`hg backout` 的行为是否发生了变化?

我创建了一个新的存储库,test-backout,并在其中添加了一个新文件,file. 然后我每次进行 4 次提交,将提交的编号附加到file使用

实际上,文件具有:

根据 hg 书,如果我运行hg backout --merge 2,我应该:

但相反,它无法合并并打开我的 difftool (vimdiff),我得到 3 个选项:

我最初尝试使用该--merge选项,然后再次尝试没有它。我现在的问题是,我还有办法得到:

我只是犯了一个错误或错过了什么,还是我坚持这些选择?