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

14

所有在如何将vim用作'git log'编辑器?中描述的内容都不适用于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 -'

更好的方式(2021-02-05)

git config --global core.pager 'vim -R -'

https://dev59.com/ZWQn5IYBdhLWcg3wpomp#16666055

5个回答

13
你可以使用以下命令:

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

我猜他选择了自己帖子的更新作为被接受的答案。 - Santi

4

这也是一个类似别名的Bash函数,只是解决了原始问题的权宜之计。 - Sérgio
1
@Sérgio,你可以将这个放到~/.bashrc中,这样每次打开新终端时都会定义它。然后你就可以使用vimgitshow代替git show了。 - lucidbrot
1
“+set filetype?${1##*.}";}" 这段代码具体是做什么的? - lucidbrot
1
我应该把那段代码放在哪里?谢谢,lucidbrot。 - Sérgio

2

1
我看到了“处理命令行时检测到错误:E486:未找到模式:\e.{-}m”。 - Vitaly Zdanevich
您可以使用/e标志来抑制此类警告。 - henrebotha

0

你可能想使用比补丁语法高亮更好的差异工具。它允许你在vimdiff中使用git show并查看每个文件的差异。请参考这个答案


0

可以直接使用git show bf9f84042 | vim -进入编辑模式,或者使用git show bf9f84042 | vim -R -进入只读模式,无需更改gitconfig配置。

或者

git config --global diff.tool vimdiff将vimdiff设置为diff.tool工具,然后使用git difftool bf9f042 232wf2f进行查看差异。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接