如何让 git 在 vim 中显示更改,就像 hg 使用 hgeditor 脚本那样?
Mercurial 的一个有趣功能是能够查看将在 vim 拆分中提交的更改(请参阅 DiffsInCommitMessageInVIM)。
关于如何使用 git 执行此操作有任何提示吗?
An interesting feature in mercurial is the ability to view the changes that will be committed in a vim split (see DiffsInCommitMessageInVIM).
Any hint on how to do so with git ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
假设您已启用语法,Vim 会将 git 提交消息检测为文件类型。从突出显示中应该可以明显看出这一点。不太明显的部分是它还有一个用于 git 提交(和其他 git 东西)的文件类型插件。确保您已启用这些(
文件类型插件
),然后将定义一个有用的命令:DiffGitCached
。只要运行它,它就会将差异扔到预览窗口中。插件中该命令定义旁边的注释:
文件类型插件存储在 /vimXX/ftplugin/git*.vim 中,例如
/usr/share/vim/vim70/ftplugin/gitcommit.vim
,如果你好奇的话来看看吧!Assuming you've got syntax enabled, Vim detects git commit messages as a filetype. This should be obvious from highlighting. The much less obvious part is that it also has a filetype plugin for git commits (and other git things). Make sure you have those enabled (
filetype plugin on
), and then there will be a helpful command defined:DiffGitCached
. Just run that, and it'll toss a diff into a preview window.A comment next to the definition of that command in the plugin:
The filetype plugins are stored in /vimXX/ftplugin/git*.vim, e.g.
/usr/share/vim/vim70/ftplugin/gitcommit.vim
, if you're curious to have a look!我已经修改了 HGEDITOR.SH 脚本以支持 Git,您可以在此处克隆它:
享受吧!
I've modified the HGEDITOR.SH script to support Git, you can clone it here:
Enjoy!
我强烈推荐 tpopes 的
vim-fugitive
插件来使用 git。您可以在此处找到它
I highly recommend tpopes's
vim-fugitive
plugin for working with git.You can find it here
如果您使用 git 2.9 及更高版本,则可以通过运行 git config --global commit.verbose true 来获得此行为。
资料来源:此答案。
If you're using git 2.9 and above, you can get this behaviour by running
git config --global commit.verbose true
.Source: this answer.
我使用来自 www.vim.org 的 Pierre Habouzit 的 git.vim。将其放入 ~/.vim/ftplugin 中,您应该已准备就绪(假设 ~/.vimrc 中通常的
文件类型插件缩进
)。I use Pierre Habouzit's git.vim from www.vim.org. Drop it into ~/.vim/ftplugin and you should be all set (assuming the usual
filetype plugin indent on
in your ~/.vimrc).