Je l'utilise souvent dans mon projet, pour voir les changements:Ecrire ctags prennent en charge pour le fichier diff/patch dans vim
git diff 5b80e3be314143f 3b34d24a55ab -- include/* src/* | vim -
Toutes les lignes commençant par le fichier des changements étant sont écrits comme ceci:
diff --git a/include/behaviors/mechanical/crystal_behavior.h b/include/behaviors/mechanical/crystal_behavior.h
Je voudrais être capable de naviguer facilement les fichiers avec tagbar, qui utilise ctags, et obtenir par exemple le nom de fichier, ici crystal_behavior.h
. Donc, je sais que je peux utiliser quelque chose comme ceci dans un fichier .ctags:
--langdef=diff
--langmap=diff:.diff
--regex-diff=/^diff --git .*b\/(.*)(\/(.*))+$/\.\. \2/d,file/
Avec dans mon .vimrc
let g:tagbar_type_diff = {
\ 'ctagstype' : 'diff',
\ 'kinds' : [
\ 'd:Files',
\ ],
\ 'sort' : 0,
\ }
Mon problème ici, est ce que je peux mettre ici --regex-diff=*
, pour obtenir un nom de fichier significatif? (J'ai plus ou moins) Est-ce qu'il est possible d'aller plus loin et de taguer les mecs dans chaque fichier? C'est la partie la plus difficile que je ne peux pas obtenir.
Merci
- Bonus question: si je lis la diff directement à partir du tampon, Tagbar ne génère pas de balises ... alors que je fais est git diff ......> patch.diff, puis vim patch.diff, ça marche.