Je me demandais s'il était possible de changer la taille des tabulations dans git-gui de 8 caractères à 4. La seule chose que j'ai trouvée était core.whitespace = tabsize=4
mais cela n'affecte que diff.
La raison pour laquelle je pose la question est que j'élimine progressivement l'utilisation des tabulations et que j'utilise plutôt une indentation à 4 espaces. Cependant, cela peut donner des résultats confus lorsque vous regardez la différence dans git-gui, car la taille des tabulations est d'environ 8 caractères.
Je sais qu'un simple :retab
dans Vim résout mon problème, mais assez souvent je dois travailler sur de gros fichiers avec un historique à long terme qui peuvent avoir des modifications dans des branches distinctes. Je ne peux donc pas toujours simplement convertir tous les onglets.
J'ai fait des recherches.
La configuration
core.whitespace
n'a rien à voir avec la façon dont les onglets sont affichés. Il est uniquement utilisé pour que git reconnaisse les erreurs d'espaces liés aux onglets. Par exemple: lorsqueindent-with-non-tab
est activé, etcore.whitespace
est défini surtabwidth=4
, et qu'une ligne est indentée en utilisant 4 espaces ou plus, alors git signalera une erreur.Pour git, à part les fonctionnalités de détection d'erreurs d'espaces blancs liées aux onglets, un caractère de tabulation est un caractère comme tout autre caractère. Il est comparé et exporté vers n'importe quel outil utilisé pour afficher les caractères. Cela signifie que pour configurer la largeur de tabulation affichée, vous devez configurer les "frontaux" de git. Dans ce cas,
git diff
ce serait «moins» (l'outil Unix «moins»). Dans ce cas,git gui
ce serait git-gui lui-même.Configurer moins est facile. Vous pouvez définir la configuration de git
core.pager
sur moins pour afficher un onglet en utilisant 4 espaces (moins a un paramètre-xn
pour définir la largeur de tabulationn
).La configuration de git-gui s'est avérée être beaucoup plus difficile. Git-gui est écrit en Tcl / Tk. J'ai trouvé une option Tcl / Tk pour configurer la largeur de tabulation dans les widgets de texte. J'ai également trouvé une ligne
git-gui.sh
où il semble que le widget de texte est en cours d'initialisation.Il s'agit de la ligne 3346 du fichier
git-gui.sh
dans la version 1.7.5 de git:J'ai changé cela, selon le manuel Tcl / Tk, en:
Cela ne semblait avoir aucun effet. J'ai essayé différentes valeurs pour
-tabs
et elles ont eu un certain effet sur la largeur des onglets affichés, il semble donc que ce soit la bonne ligne à modifier.Malheureusement, Tcl / Tk ne semble pas avoir une notion de largeur de tabulation en termes de caractères, mais la largeur de tabulation doit être définie en pixels ou en centimètres.
Notez que je n'ai aucune expérience en Tcl / TK, donc peut-être que je suis en train d'oublier quelque chose de simple ici.
Quoi qu'il en soit, vous savez maintenant où commencer à creuser. N'oubliez pas de signaler ici si vous avez une solution de travail. Bonne chance.
la source
J'ai élaboré des recherches faites par lesmana .
La ligne
mentionné par lesmana devrait être remplacé par le texte suivant:
Après cela, on peut régler la taille des onglets en utilisant l'option "tabsize" dans la section [gui] du fichier de configuration git (alias gui.tabsize). Mauvaises nouvelles:
Testé avec:
la source