web-dev-qa-db-fra.com

Comment configurer le terme Mac OS X pour que git ait de la couleur?

J'ai vu une démo en ligne de Mac OS X git dans laquelle il est configuré pour utiliser plusieurs couleurs.

Par exemple, son invite est orange, son répertoire ls est violet et son git diff sortie a ~ 4 couleurs (rose, vert clair, rouge, jaune pâle).

Pouvez-vous me dire comment puis-je configurer le terminal Mac OS X pour y parvenir? C'est définitivement Mac OS X Terminal.app, pas iTerm.

194
yinglcs

La réponse de William Purcell active uniquement la couleur pour la commande 'git diff'. Faites ceci pour activer les couleurs pour toutes les commandes git:

$ git config --global color.ui true
386
phloopy

Pour afficher la couleur dans la sortie de git diff, vous devez configurer git. Essayez de courir

$ git config --global color.diff true

pour définir votre $ HOME/.gitconfig correctement.

56
William Pursell

Ce n’est normalement pas quelque chose que vous configurez pour que le terminal le fasse ... Le terminal n’est pas au courant de ce qu’il montre, mais essayez ceci dans votre Shell (si vous utilisez bash, dans un autre shell, vous n’exportez pas, mais vous appelez setenv ou autre chose):

export CLICOLOR=1
export TERM=xterm-color

Vous pouvez ensuite utiliser générateur LSCOLORS pour configurer quelque chose que vous pouvez exporter en utilisant quelque chose comme:

export LSCOLORS=fxfxcxdxbxegedabagacad

(ce qui précède devrait vous donner des répertoires violets)

Lorsque vous avez terminé et que vous êtes satisfait du résultat, ajoutez les trois lignes à votre fichier/etc/bashrc ou au fichier .bashrc dans le répertoire de base de votre utilisateur.

Modifier: Vérifiez également que la case "Afficher les couleurs ANSI" (sur la page "Texte") est cochée.

12
Fredrik

C'est ce que j'utilise dans mon fichier .profile. Fonctionne comme un charme car cela me permet de voir la branche git actuelle ainsi que son état à travers la couleur. Si vous souhaitez le modifier, veuillez noter qu'il est important de codes de couleur d'échappement afin d'éviter les problèmes de saut de ligne dans les longues lignes.

# Setting GIT Prompt
c_cyan=`tput setaf 6`
c_red=`tput setaf 1`
c_green=`tput setaf 2`
c_sgr0=`tput sgr0`

branch_color ()
{
    if git rev-parse --git-dir >/dev/null 2>&1
    then
        color=""
        if git diff --quiet 2>/dev/null >&2 
        then
            color=${c_green}
        else
            color=${c_red}
        fi
    else
        return 0
    fi
    echo -n $color
}

parse_git_branch ()
{
    if git rev-parse --git-dir >/dev/null 2>&1
    then
        gitver="["$(git branch 2>/dev/null| sed -n '/^\*/s/^\* //p')"]"
    else
        return 0
    fi
echo -e $gitver
}

#It's important to escape colors with \[ to indicate the length is 0
PS1='\u@\[${c_red}\]\W\[${c_sgr0}\]\[\[$(branch_color)\]$(parse_git_branch)\[${c_sgr0}\]$ '
10
Marc M

Ouvrez l'application du terminal, puis ouvrez la boîte de dialogue des préférences, soit via le menu (Terminal -> Préférences), soit en appuyant sur Command+,. Une fois la boîte de dialogue des préférences ouverte, sélectionnez le style de terminal dans le volet de gauche, sélectionnez Texte dans la barre de boutons, puis assurez-vous que la case "Afficher les couleurs ANSI" est cochée.

Cela activera les couleurs sur le terminal. Pour obtenir des couleurs dans la sortie du terminal, vous devez incorporer des commandes de couleur ANSI aux données envoyées au terminal. La façon dont cela est fait dépend des commandes. Par exemple (comme indiqué ci-dessus), la commande ls a une option couleurs. Pour les codes de couleur, lancez une recherche sur Google pour "couleur ansi".

0
codey

Pour la sortie ls en couleur, je recommanderais d'installer gnu coreutils et d'utiliser cette version de ls à la place. Quelle que soit la version de ls, vous devez lui attribuer le drapeau correct, à savoir --color pour la version gnu ou -G pour la version standard d’OS X. Ainsi, vous pouvez faire quelque chose comme

alias ls='ls --color'

dans votre .bashrc.

Pour colorer votre invite, vous devez utiliser les codes de couleurs corrects pour votre terminal, mais le mien utilise

Prompt="$(print '%{\e[0;38m%}%{\e[1;1m%]%}[%m:%c] %n%%%{\e[0m%}') "

produire

[hostname:directory] username%

en blanc audacieux.

0
Amok