Puis-je faire défiler vers de nouvelles lignes en utilisant la molette de la souris dans git diff?

12

J'utilise le terminal par défaut d'Ubuntu 16.04 (c'est GNOME je crois?)

Le problème auquel je suis confronté est que lorsque j'utilise la git diffcommande pour inspecter mes modifications locales, je peux faire défiler vers le haut / bas à l'aide de la molette de la souris, mais aucune nouvelle ligne n'apparaît lorsque j'arrive en bas (donc je ne peux voir qu'une seule page de changements). Pour passer aux lignes suivantes, je peux utiliser l'espace ou les flèches haut / bas du clavier, mais puis-je le faire avec la molette de la souris?

BTW Si j'utilise la lesscommande, cela fonctionne comme prévu -> le défilement vers le bas va vers de nouvelles lignes.

Todor
la source

Réponses:

21

Grâce à la réponse de @edwinksl , j'ai réussi à trouver une solution au problème.

Donc, par défaut, git l'utilise LESScomme pager et je pense que les arguments par défaut le sont FRSX.

Sur git 1.8+, vous pouvez supprimer des options avec less -+<option>, dans mon cas, je dois supprimer l' Xoption pour:

git config --global --replace-all core.pager 'less -+X'

mais comme @pcworld le mentionne, cela peut causer des problèmes avec les différences qui tiennent sur une seule page, donc:

git config --global --replace-all core.pager 'less -+FX'

résolu le problème de défilement pour moi.

Todor
la source
3
J'avais besoin d'ajouter -+Faux options de lessou sinon la sortie qui tient sur un écran est vide. Notez que les deux options combinées dirigeront n'importe quelle sortie de git via un pager, même si elle tient sur un seul écran. Cependant, il existe un script wrapper pour moins qui appelle moins uniquement si la sortie dépasse la taille de l'écran . Voir les commentaires # 10 et # 11 sur ce bogue Debian et cette question sur less pour plus de détails techniques.
pcworld
3

À partir de /programming//a/2183920/486919 , une façon de le faire et de conserver la mise en surbrillance des différences est d'utiliser git diffsans pageur:

git --no-pager diff
edwinksl
la source
Merci pour cette réponse, cela m'aide à trouver la solution exacte que je cherchais -> activer le défilement de la molette de la souris. Bien que la suppression du téléavertisseur soit une bonne solution de contournement, je préfère commencer à lire les différences depuis le début.
Todor
@Todor C'est juste; Je suis d'accord, --no-pagerc'est mieux pour les courts différentiels mais pas pour les longs.
edwinksl