我如何使用vim作为'git show'编辑器?

时间:2015-01-20 14:49:35

标签: git vim

所有How do I use vim as 'git log' editor?中描述的内容都不适用于git show。 我经常使用

git show HEAD

ctrl+z 

ps 

  PID TTY          TIME CMD
 7083 pts/8    00:00:06 bash
31758 pts/8    00:00:00 git
31759 pts/8    00:00:00 less
31762 pts/8    00:00:00 ps

更新我找到了解决方案:

git config --global pager.color false
git config --global pager.show 'vim -R -'

'

5 个答案:

答案 0 :(得分:9)

您可以使用以下命令:

PAGER='vim -' git -c color.ui=false show

答案 1 :(得分:4)

这是一篇解决该问题的Twitter帖子。

https://twitter.com/oliviergay/status/179692941063888896

  

git showvim一起使用,语法高亮显示:vimgitshow() { git show "$1" | vim - "+set filetype=${1##*.}"; }

答案 2 :(得分:2)

这对我有用:

git config --global pager.show "vim -c '%sm/\\e.\\{-}m//g' -c 'set ft=diff' +1 -"

疯狂的vim args在这里找到:https://stackoverflow.com/a/17015531/610634

答案 3 :(得分:0)

您可能还想使用更好的差异而不仅仅是补丁语法高亮。它允许您使用java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) 并查看git show中每个文件的差异。请参阅此answer

答案 4 :(得分:0)

可以简单地在编辑模式中使用 git show bf9f84042 | vim -,或在只读模式中使用 git show bf9f84042 | vim -R -,而无需更改 gitconfig

git config --global diff.tool vimdiff 使用 vimdiff 作为 diff.tool,然后 git difftool bf9f042 232wf2f 来 diff