我发现自己经常在提交消息中重复我编辑过的函数的名称,并且在编写提交消息时对我刚刚更改的函数进行自动完成会很好。
是否有可能让 vim 以某种方式搜索当前提交的文件并获取函数名,或者更好的是,只有修改过的文件名?
我正在使用 gVim7.3 和 C#,如果这完全相关的话。
我发现自己经常在提交消息中重复我编辑过的函数的名称,并且在编写提交消息时对我刚刚更改的函数进行自动完成会很好。
是否有可能让 vim 以某种方式搜索当前提交的文件并获取函数名,或者更好的是,只有修改过的文件名?
我正在使用 gVim7.3 和 C#,如果这完全相关的话。
如果您使用该-v
选项git commit
,将导致 git 将您提交的内容的差异放在用于创建提交消息的文件中。对于大多数语言,该差异中的大块头将指示正在修改的函数的名称。这将使修改后的函数的名称可用于使用Ctrl+N或Ctrl+完成P
为了简化这一点,我很久以前做过
git config --global alias.ci 'commit -v'
并且始终使用git ci
而不是git commit
.
较新版本的 git 支持配置为所有提交打开此功能。
git config --global commit.verbose true
Vim 7.3 附带$VIMRUNTIME/ftplugin/gitcommit.vim
,它定义了一个:DiffGitCached
命令来显示你将要提交的差异。一旦您在拆分窗口中拥有它,默认<C-N>
完成(假设默认'complete'
值)将自动选择这些字符串。(最后一次检查你是否真的提交了正确的东西也很有用。)