【发布时间】:2011-01-24 17:41:47
【问题描述】:
mercurial 中一个有趣的功能是能够查看将在 vim 拆分中提交的更改(请参阅 DiffsInCommitMessageInVIM)。
关于如何使用 git 的任何提示?
【问题讨论】:
-
注意
core.editor不仅用于提交,还用于标记、添加(交互)和提交-e。
mercurial 中一个有趣的功能是能够查看将在 vim 拆分中提交的更改(请参阅 DiffsInCommitMessageInVIM)。
关于如何使用 git 的任何提示?
【问题讨论】:
core.editor不仅用于提交,还用于标记、添加(交互)和提交-e。
假设您启用了语法,Vim 将 git 提交消息检测为文件类型。这应该从突出显示中显而易见。不太明显的部分是它还有一个用于 git 提交(和其他 git 东西)的文件类型插件。确保您已启用这些 (filetype plugin on),然后将定义一个有用的命令:DiffGitCached。只需运行它,它就会在预览窗口中显示一个差异。
插件中该命令定义旁边的注释:
可以通过以下方式自动区分:
autocmd FileType gitcommit DiffGitCached | wincmd p
文件类型插件存储在 /vimXX/ftplugin/git*.vim 中,例如/usr/share/vim/vim70/ftplugin/gitcommit.vim,有兴趣的可以看看!
【讨论】:
diff commit 和vim :set ft=gitdiff 然后:DiffGitCached,我确实有一个窗口打开,但没有任何信息。
filetype plugin on,Git 应该会检测到它并自动启用该插件。而且,您实际上并不需要知道这一点,但 git 提交消息的文件类型是 gitcommit,而不是 gitdiff。
DiffGitCached 似乎不起作用。奇怪。
!!git diff --cached 会发生什么?也就是说,直接在你的提交消息窗口中调用 git 命令。
我已经修改了 HGEDITOR.SH 脚本来支持 Git,你可以在这里克隆它:
git clone git://github.com/dharrigan/giteditor.git
享受吧!
【讨论】:
我强烈推荐 tpopes 的 vim-fugitive 插件来使用 git。
你可以找到它here
【讨论】:
我使用来自 www.vim.org 的 Pierre Habouzit's git.vim。将它放到 ~/.vim/ftplugin 中,你应该已经准备好了(假设你的 ~/.vimrc 中通常是 filetype plugin indent on)。
【讨论】:
如果您使用的是 git 2.9 及更高版本,则可以通过运行 git config --global commit.verbose true 来获得此行为。
来源:this answer。
【讨论】: