我已经将vim设置为我的外部差异工具:
[diff]
external = git_diff_wrapper
#!/bin/sh
vimdiff "$2" "$5"
Run Code Online (Sandbox Code Playgroud)
假设我有300个已修改过的文件; 通过bash,我输入"git diff".它按顺序启动了300个vimdiff,我该如何中止?
有没有办法使用vimdiff来比较文件的当前版本和同一文件n git版本之前?
例如,我正在分支主机上的文件foo.c上工作.我想在master~10之间的foo.c和foo.c之间做一个vimdiff,从旧版本复制一两行.
PS我知道git樱桃选择,但这是整个文件,而不仅仅是几行.
我正在使用vimdiff来查看两个文件之间的区别.我想知道是否可以从左侧选项卡(第一个文件)复制一行并将其粘贴到第二个选项卡(第二个文件)中.实际上,我似乎无法访问第二个选项卡.
谢谢!
当使用带有git和大量更改文件的vimdiff时,vimdiff将按顺序打开每个文件.关闭当前文件后,它会打开下一个文件.
但是,如果我只是想要打破整个差异化过程并且也不想让差异打开呢?
使用vimdiff时如何停止所有差异?
在过去一周左右的时间里,我一直在使用Vim进行大部分编辑,我很喜欢这种体验.但是我有一个问题.
我已经设置了我的.vimrc文件NERD_tree和其他一些好东西.这适用于我编码的时候.但有时我使用vimdiffGit,这会导致一些问题.NERD_Tree当我这样做或我在.vimrc文件中设置的许多其他内容时,我不需要打开.
这是我的问题.有没有办法检查调用我的.vimrc文件是什么,让它根据调用者执行不同的代码?具体来说我如何测试是否vimdiff是来电者?或者我完全以错误的方式解决这个问题?
我正在使用vimdiff进行git合并.有没有快速选择1文件的方法,现在我只是从一个缓冲区中选择所有内容,用它替换$ MERGE,然后保存.我想我可以宏观,但想知道是否有更好的方法.谢谢!
我有两个大文件采取vimdiff.在vimdiff输出中,我想忽略显示diff但有特定单词的行.
例如,在我的情况下,我想忽略WARNING: 我的文件中带有前缀的所有行的差异.
谢谢,
如何强制vimdiff始终逐行比较两个文件而不识别添加或删除的行?
问题是,如果两个文件之间的差异很大,但是文件中的两行偶然匹配,vimdiff认为这些行是相同的,只是将其余行视为添加或删除的行,并且生成的diff完全不可用.在我的例子中,file1中的第i行始终对应于file2中的第i行,因此vimdiff没有添加或删除行的业务查找.
以下是一个小例子,其中两个文件包含两个变量的值,每个变量三次.Vimdiff错误地将file1/line1与file2/line3匹配,并认为已经添加或删除了它周围的一些行.差异(减去颜色)然后看起来像这样:
| 1 foo 8.1047 < del/new
| 2 bar 6.2343 < del/new
1 foo 0.0000 | 3 foo 0.0000 < match
2 bar 5.3124 | 4 bar 1.4452 < wrong
3 foo 4.5621 | < new/del
4 bar 6.3914 | < new/del
5 foo 1.0000 | 5 foo 1.0000 < match
6 bar 6.3212 | 6 bar 7.2321 < wrong
Run Code Online (Sandbox Code Playgroud)
但是,我想要的是以下内容,除了匹配的行5之外,所有行都标记为错误:
1 foo 0.0000 | 1 foo 8.1047 < wrong
2 bar 5.3124 | 2 bar 6.2343 …Run Code Online (Sandbox Code Playgroud) 我有几个大的json文件,我需要检查错误,并想知道是否可以将差异标记为好,并且有适用于整个差异会话,从而在文件中进一步消除它.
例
Name: Donald Duck | Name: Daisy Duck
Run Code Online (Sandbox Code Playgroud)
在这里,我希望能够将此更改标记为"确定"差异(即我希望名称和明显的性别变化).
当我运行git difftool --tool-help或 时git mergetool --tool-help,我看到:
vimdiffvimdiff1vimdiff2vimdiff3这些不同的“版本”是什么?我假设他们都以不同的选项启动 Vim,但是有哪些选项呢?它们在任何地方都有记录吗?