【发布时间】:2017-01-13 00:09:08
【问题描述】:
我经常在我的项目中使用它,以查看变化:
git diff 5b80e3be314143f 3b34d24a55ab -- include/* src/* | vim -
所有以被更改文件开头的行都写成这样:
diff --git a/include/behaviors/mechanical/crystal_behavior.h b/include/behaviors/mechanical/crystal_behavior.h
我希望能够使用使用 ctags 的 tagbar 轻松导航文件,并获得例如文件名,此处为 crystal_behavior.h。
所以,我知道我可以在 .ctags 文件中使用类似的东西:
--langdef=diff
--langmap=diff:.diff
--regex-diff=/^diff --git .*b\/(.*)(\/(.*))+$/\.\. \2/d,file/
连同这个在我的 .vimrc 中
let g:tagbar_type_diff = {
\ 'ctagstype' : 'diff',
\ 'kinds' : [
\ 'd:Files',
\ ],
\ 'sort' : 0,
\ }
我的问题是,我可以在这里输入什么--regex-diff=*,以获得有意义的文件名? (我或多或少)
是否有可能更进一步并标记每个文件中的帅哥?这是我无法得到的最棘手的部分。
谢谢
- 额外问题:如果我直接从缓冲区读取差异,标签栏不会生成标签...而我是做 git diff ......> patch.diff,然后是 vim patch.diff,它可以工作.
【问题讨论】: