chu*_*ckg 199 git vim diff vimdiff
我设置git diff包装到vimdiff,使用" Git Diff with Vimdiff "作为指南,除非有许多文件有变化,否则它按预期工作.
当有多个文件有变化并且我运行时git diff,它会打开第一个文件,在退出第一个vimdiff实例后,我会看到以下消息:
external diff died, stopping at filename
Run Code Online (Sandbox Code Playgroud)
这是一种与我以前完全不同的行为.我在过去使用SVN时有类似的设置,在对多个:wq文件进行区分时,我会查看第一个文件,然后编写并退出使用,下一个文件会有差异打开.
Git不是这种情况.我试过了:n[ext],但这样做并没有用原始文件填充左侧窗口,因此可以针对修改后的版本进行区分.
chu*_*ckg 320
git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool
Run Code Online (Sandbox Code Playgroud)
键入会git d产生预期的行为,:wq在vim循环中键入变更集中的下一个文件.
小智 101
你可以尝试git difftool,它的目的是做这个东西.
首先,您需要将diff工具配置为vimdiff
git config diff.tool vimdiff
Run Code Online (Sandbox Code Playgroud)
然后,当你想要差异时,只需使用git difftool而不是git diff.它会像你期望的那样工作.
Nan*_*mar 21
Git accepts kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
and opendiff as valid diff tools. You can also set up a custom tool.
git config --global diff.tool vimdiff
git config --global diff.tool kdiff3
git config --global diff.tool meld
git config --global diff.tool xxdiff
git config --global diff.tool emerge
git config --global diff.tool gvimdiff
git config --global diff.tool ecmerge
Run Code Online (Sandbox Code Playgroud)
Vic*_*tor 15
如果想永久使用vimdifffor git diff,可以设置该~/.gitconfig文件:
git config --global diff.tool vimdiff
Run Code Online (Sandbox Code Playgroud)
然后你可以使用git difftooldiff 。
如果只想暂时使用vimdiff,可以每次运行命令:
git difftool --tool=vimdiff
Run Code Online (Sandbox Code Playgroud)
小智 5
对于想要使用未在 git 中列出的其他差异工具的人,请使用nvim. 这是我最终使用的:
git config --global alias.d difftool -x <tool name>
Run Code Online (Sandbox Code Playgroud)
就我而言,我设置<tool name>为nvim -d并调用 diff 命令
git d <file>
Run Code Online (Sandbox Code Playgroud)