2009-07-20 12 views
189

He visto una demo de gps de Mac OS X en línea en la que está configurada para tener varios colores.¿Cómo se configura el término Mac OS X para que git tenga color?

Por ejemplo, su indicación es ámbar, su directorio ls es púrpura y su salida git diff tiene ~ 4 colores (rosa, verde claro, rojo, amarillo pálido).

¿Puede decirme cómo puedo configurar el terminal Mac OS X para lograr eso? Definitivamente es Mac OS X Terminal.app, no iTerm.

+3

¿Pertenece a superusuario.com? – OscarRyz

+3

Excepto que superuser.com todavía está en beta privada y yinglcs probablemente no tenga acceso. – Fredrik

+0

¿Existe algún requisito de suscripción beta al Superusuario además de lo que se menciona en http://blog.stackoverflow.com/2009/07/super-user-semi-private-beta-begins/? – las3rjock

Respuesta

11

Normalmente no es algo que configure el terminal para hacer ... El terminal no tiene conocimiento de lo que está mostrando, pero intente esto en su caparazón (si está utilizando bash, en algunos otros shells no exporta pero llamar setenv o alguna otra cosa):

export CLICOLOR=1 
export TERM=xterm-color 

entonces usted puede utilizar para configurar LSCOLORS generator algo que se puede exportar usando algo como:

export LSCOLORS=fxfxcxdxbxegedabagacad 

(Lo anterior debe darle directorios púrpura)

Cuando haya terminado y esté satisfecho con el resultado, agregue las tres líneas a su/etc/bashrc o al archivo .bashrc en el directorio de inicio de su usuario.

Editar: Además, en su terminal, asegúrese de que la casilla "Mostrar colores ANSI" (en la página "Texto") esté marcada.

+0

.bashrc ¿funciona también? En mi mac es .bash_profile, sé que es .bashrc en Linux, pero pensé que era diferente en mac con todo el aspecto de BSD (también parece que LSCOLORS es diferente en Linux y BSD/Mac). –

+0

.bashrc funciona para mí ... Y sí, es diferente. GLS usa LS_COLORS (que también se puede generar usando la página vinculada a) – Fredrik

+0

Gracias. Pero, ¿cómo se puede configurar colores como 'trigo', 'púrpura' en la salida de prompt o ls? o 'rosa' en la salida 'git diff'. Gracias. – yinglcs

0

Para la salida de color de ls, yo recomendaría instalar el gnu coreutils y usar esa versión de ls en su lugar. Para cualquiera de las dos versiones de ls, tendrá que pasarle la bandera correcta, que es --color para la versión gnu o -G para la versión estándar OS X. Por lo tanto, puede hacer algo como

alias ls='ls --color' 

en su .bashrc.

para colorear su pronta tendrá que utilizar los códigos de colores correctos para su terminal, pero la mía utiliza

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

para producir

[hostname:directory] username% 

en blanco negrita.

56

Para mostrar el color en la salida de git diff, debe configurar git. Intente ejecutar

$ git config --global color.diff true 

para configurar su $ HOME/.gitconfig adecuadamente.

+0

William, ¡sí! Esto es lo que me estaba perdiendo. – avernet

+0

gracias, funciona perfecto! – antiqe

10

Esto es lo que uso en mi archivo .profile. Funciona como un amuleto porque me permite ver la rama de git actual, así como su estado a través del color. Si desea modificarlo, tenga en cuenta que es importante escape color codes para evitar problemas de alimentación de línea en líneas largas.

# 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='\[email protected]\[${c_red}\]\W\[${c_sgr0}\]\[\[$(branch_color)\]$(parse_git_branch)\[${c_sgr0}\]$ ' 
+0

¿Qué archivo .profile has mencionado? –

379

William Purcell's answer sólo permite a color para el comando 'git diff'.Hacer esto para habilitar los colores para todos los comandos git:

$ git config --global color.ui true 
+0

Justo lo que necesitaba. Gracias. – jffgrdnr

+0

Pure Perfection. Gracias Señor. –

+0

o puede consultar esta alternativa más rica aquí: https://gist.github.com/trey/2722934 –

0

abrir la aplicación de terminal, a continuación, abra el diálogo de preferencias, ya sea a través del menú (Terminal -> Preferencias) o pulsando Comando + ,. Una vez que se abra el cuadro de diálogo de preferencias, seleccione el estilo de terminal en el panel de la izquierda, seleccione Texto en la barra de botones, luego asegúrese de que la casilla de verificación "Mostrar colores ANSI" esté marcada.

Eso habilitará los colores en el terminal. Para obtener colores en la salida del terminal, deberá incrustar los comandos de color ANSI en los datos que se envían al terminal. Cómo se hace esto depende de los comandos. Por ejemplo (como se mostró arriba), el comando ls tiene una opción de colores. Para los códigos de color, haga una búsqueda en google para "color ansi".

+0

Tenga en cuenta que la pregunta ya está cerrada como fuera de tema. :) –