git - 如何让 git difftool 可以使用 gvim (gvimdiff)?

标签 git vim git-diff vimdiff

git 似乎发生了变化,这使得它不再能与 gvim 作为 diff 工具一起正常工作。具体来说,我总是习惯使用 gvim -geometry 标志来最大化窗口。现在,我最终得到一个空白窗口(空/零行文件)。

最佳答案

好的,我找到了答案。为了正常工作,gvim 必须留在前台,而不是像往常一样 fork 一个新进程。这是通过在启动 gvim(或 gvimdiff)时使用 -f--nofork 标志来实现的。

我现在已经设置了以下有效的别名:

alias gitdg='git difftool --noprompt --extcmd="gvim -d --nofork -geometry 220x80+2000+40" '

请注意单引号和双引号的位置,以使 zsh shell 满意。

我使用 gvim 选项 -geometry 将差异窗口配置为 220 行 x 80 列。 “+2000+40”表示窗口的左上角从所有显示器的左上角水平偏移 2000 像素,垂直偏移 80 像素,因此窗口出现在我的 2 显示器设置的右显示器上。尝试将其设置为 -geometry 160x40+60+20 以查看更改的效果。

关于git - 如何让 git difftool 可以使用 gvim (gvimdiff)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26554865/

相关文章:

git - 获取服务=未找到 git-receive-pack : did you run git update-server-info on the server?

vim - 为什么 vim 在使用 setlocal 时会更改所有缓冲区的编码?

git - 我怎样才能将 git-diff 限制在一个没有子目录的目录中?

Git diff 忽略子模块中的 textconv

Git diff 在提供路径时忽略 textconv

git - 从 github 中完全删除旧的提交(不仅仅是从历史中)

git - 如何将新的(重写的)历史推送到远程存储库

用于类似 IDE 行为的 Vim FTP 插件

visual-studio-2010 - 带有 git 的 Visual Studio (Microsoft) 符号服务器

vim - 您需要从工作树的顶层运行此命令