问题标签 [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 投票
3 回答
4719 浏览

git - 通过 Git 使用 Vimdiff 时如何获取 bufspec

我已经阅读了 VimdiffViewing Differences with Vimdiff以及使用“vimdiff multiple”、“vimdiff git”、“vimdiff commands”等内容进行各种谷歌搜索。

使用 do 或 diffg 时,我收到错误“在 diff 模式下有两个以上的缓冲区,不知道要使用哪一个”。

使用 diffg v:fname_in 时,我得到“v:fname_in 没有匹配的缓冲区”。

从 vimdiff 文档:

:[range]diffg[et] [bufspec]
修改当前缓冲区以撤销与另一个缓冲区的差异。如果给出 [bufspec],则使用该缓冲区。如果 [bufspec] 指的是当前缓冲区,那么什么也不会发生。否则,这只适用于在差异模式下存在另一个缓冲区的情况。

和更多:

当 'diffexpr' 不为空时,Vim 求值以获得上述格式的 diff 文件。这些变量设置为使用的文件名:

v:fname_in 原始文件
v:fname_new 相同文件的新版本
v:fname_out 产生的差异文件

因此,我需要获取 bufspec 的名称,但未设置默认变量(fname_in、fname_new 和 fname_out)。

我通过终端在 linux 机器上运行了命令 git mergetool 。

[编辑] 产生更多问题的部分解决方案。我在缓冲区底部使用了“文件名”。这只是一半的答案,因为偶尔我会收到文件不存在错误。我相信它始终是“不存在”的文件的远程版本。我怀疑这与 git 和索引有关。

在通过 git-mergetool 使用 vimdiff 时,如何始终如一地获得 bufspec 值?

0 投票
15 回答
34553 浏览

vim - 如何在 vim 中退出 vimdiff 模式,特别是对于 Fugitive?

我正在使用带有逃犯扩展名的 vim 。它有一个 :Gdiff 命令可以让您进入 vimdiff 模式,但是关闭/退出 vimdiff 模式的正确/快速方法是什么?

即,假设我正在编辑 Git 存储库下的文件 FooBar.txt。我启动 :Gdiff,查看我在 vimdiff 中的更改,然后我想返回并继续编辑 FooBar.txt 或任何其他文件 :)

更新1:我将在下一个工作日尝试这些快速组合:)

UPDATE2:我当前的映射(仅关闭差异窗口!)

另外,请帮助我确定以下是否应该是一个答案:https ://stackoverflow.com/a/15975201/275980

0 投票
3 回答
5655 浏览

git - 如何取消外部 git diff?

我已经将 vim 设置为我的外部差异工具:

假设我有 300 个文件已被修改;通过 bash,我输入“git diff”。它依次启动 300 个 vimdiff,我该如何中止它?

0 投票
6 回答
7964 浏览

vim - 如何在 Vim 的同一个文件中“区分”两个子例程?

是否有可能diff甚至vimdiff两个非常相似的子程序出现在同一个文件中?如果是这样,怎么做?

我可以考虑将两个子例程复制到两个单独的文件中,然后再复制diff它们,但是有没有办法在原始文件中执行此操作?

0 投票
1 回答
145 浏览

vim - 在 vimdiff 中打开一个非差异窗口

有时我正在使用 vimdiff 并想要获取代码并将其放在第三个窗口/缓冲区中以供以后参考。但是,当该窗口打开时,几乎所有内容都被标识为差异(因为它故意与其他两个文件不同)。如何在使用 vimdiff 时以非差异模式打开窗口?

0 投票
5 回答
131930 浏览

git - 使用 vimdiff 查看所有 `git diffs`

我设置git diff包装到 vimdiff,使用“ Git Diff with Vimdiff ”作为指导,它按预期工作,除非有很多文件有更改。

当有多个文件有更改并且我运行git diff时,它会打开第一个文件,并且在退出 vimdiff 的第一个实例后,我会看到以下消息:

这是与我习惯的完全不同的行为。过去我使用 SVN 进行了类似的设置,当比较多个文件时,我会查看第一个文件,然后写入并退出使用:wq,下一个有差异的文件会打开。

这不是 Git 的情况。我试过:n[ext]了,但这样做不会用原始文件填充左侧窗口,以便可以将其与修改后的版本进行比较。

0 投票
4 回答
22263 浏览

vim - 比较 Vim 中两个垂直打开的窗口

我打开了两个文件。它们以垂直模式打开,紧挨着下一个。我可以在不离开或关闭 Vim 的情况下立即区分这两个文件吗?

0 投票
5 回答
30625 浏览

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

diff有一个选项-I regexp,它忽略仅插入或删除与给定正则表达式匹配的行的更改。当更改在两行之间(而不是插入或删除行)时,我需要一个类似的情况。

例如,对于给定的and ,我想忽略所有的差异,例如 between "abXd"and 。"abYd"XY

似乎diff没有这种能力。有没有合适的替代品diff

0 投票
2 回答
3620 浏览

vim - 为什么 VimDiff 如此有限?

凭借 Vim 的所有高级编辑功能,我很难相信 VimDiff 没有从/向右/向左复制的方法!difftool 还能用来做什么?任何想法?VimDiff 的功能是什么?

另外,我什至看不到转移到下一个/上一个差异的方法!

0 投票
1 回答
5567 浏览

svn - 配置 vim-diff 以在将其用于 svn-diff 时显示不同的颜色

我已通过添加以下行将“vimdiff”设置为我的默认 svn-diff 工具~/.subversion/config

diffwrap.sh

但是,vimdiff 会使用所有难看的颜色来显示差异。我有黑色背景和绿色字体颜色,如何修改 vimdiff 以显示此差异的自定义颜色?我想要一个更愉快的体验。