git - 仅在选项卡中获取 git diff 输出

标签 git vim vim-fugitive

我只想在选项卡中获取整个存储库的 git diff 输出,而不仅仅是一个文件不与提交消息分开!

issues我发现了一个:

command GdiffInTab tabedit %|Gdiff

但是这个打开了一个包含提交消息的 Split View,我想要的是在编辑 git 提交消息时在新选项卡中仅显示 git diff 。 是否可以?或者我应该尝试自己做,例如:

function GitDiffTab()
  exe "tab new %"
  exe "%!git diff"
  exe "se ft=diff"
endfunction

但编辑提交消息时不起作用。

最佳答案

使用 :terminal (需要 Vim 8.1+)

:-tab terminal git --no-pager diff

使用fugitive.vim我们可以创建一个命令:

command! -bang Tdiff execute '-tab terminal ' . call(fugitive#buffer().repo().git_command, ['--no-pager', 'diff'] + (<bang>0 ? ['--cached'] : []))

使用 :Tdiff 执行 git diff:Tdiff! 执行 git diff --cached

更多帮助请参见:

:h :tab
:h :terminal

关于git - 仅在选项卡中获取 git diff 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54378200/

相关文章:

linux - 通过 debian 软件包在系统范围内提供 vim 语法高亮

xml - Vim 宏或插件按顺序重新编号 xml 元素?

git - git reset 文件和 git checkout 文件有什么区别?

Git 有向无环图—— child 知道他们的 parent ,但反过来却不知道

vim - 添加对 `ci|` 和 `da|` 的支持(选择管道内的文本)

vim:加载插件后启动命令

windows - 安装 fugitive.vim 插件后,Vim 在 Cygwin 下启动非常慢

git - Vim Fugitive : Gblame reblame options

node.js - 使用 NodeGit 在存储库中执行 `git clean`

git - 如何判断自上次 git pull 以来远程存储库上的哪些文件发生了变化?