자식이 색상을 갖도록 Mac OS X 용어를 구성하는 방법은 무엇입니까? [닫은]


200

여러 색상을 갖도록 구성된 Mac OS X git 데모 온라인을 보았습니다.

예를 들어, 그의 프롬프트는 호박색이고, ls디렉토리는 자주색이며 그의 git diff출력은 ~ 4 가지 색상 (분홍색, 연녹색, 빨간색, 옅은 노란색)을 갖습니다.

Mac OS X 터미널을 구성하기 위해 어떻게 구성 할 수 있습니까? iTerm이 아닌 Mac OS X Terminal.app입니다.


3
superuser.com은 여전히 ​​비공개 베타 버전이며 yinglc는 액세스 권한이 없을 수 있습니다.
Fredrik

blog.stackoverflow.com/2009/07/…에 언급 된 것 외에 몇 가지 수퍼 유저 베타 가입 요건이 있습니까?
las3rjock

3
아마 아닙니다, 그러나 그것에 대해 얼마나 많은 사용자가 알고 있습니까? superuser.com에 해당 게시물에 대한 링크가있는 것은 마이그레이션을 통해 질문을받는 사용자가 그곳에 도착했을 때 찾을 수있는 것이 아닙니다 (있는 경우 찾을 수 없음).
Fredrik

3
또 다른 유용한 질문이 마감되었습니다. 고맙게도 일부 사람들은 대답 할 수 없었습니다.
Ben Thurley

1
이제 Git 질문은 주제에 따라 잘 정립되었습니다. @ casperOne의 폐쇄가 잘못되어 다시 열기로 투표했습니다.
Mark Amery

답변:


391

William Purcell의 답변 은 'git diff'명령에 대해서만 색상을 활성화합니다. 모든 git 명령에 색상을 활성화하려면 다음을 수행하십시오.

$ git config --global color.ui true

내가 필요한 것만 감사.
jffgrdnr

1
순수한 완벽. 감사합니다.
Brandon Buck

1
또는 당신은 여기에 더 풍부한 대안을 확인할 수 있습니다 : gist.github.com/trey/2722934
Yannis Dran

@yinglcs,이 답변을 이미 수락 하시겠습니까?
Eliran Malka

이 작동하지 않습니다
KansaiRobot

57

git diff 출력에 색상을 표시하려면 git을 구성해야합니다. 달리기

$ git config --global color.diff true

$ HOME / .gitconfig를 적절하게 설정하십시오.


윌리엄! 이것이 내가 놓친 것입니다.
avernet

고마워요, 완벽하게 작동합니다!
antiqe

13

일반적으로 터미널이 수행하도록 구성한 것이 아닙니다. 터미널은 표시되는 내용을 알지 못하지만 셸에서 시도하십시오 (bash를 사용하는 경우 일부 셸에서는 내 보내지 않지만 setenv 또는 다른 것):

export CLICOLOR=1
export TERM=xterm-color

그런 다음 LSCOLORS 생성기 를 사용하여 다음과 같은 것을 사용하여 내보낼 수있는 것을 설정할 수 있습니다.

export LSCOLORS=fxfxcxdxbxegedabagacad

(위는 자주색 디렉토리를 제공해야합니다)

결과가 만족 스러우면 / etc / bashrc 또는 사용자의 홈 디렉토리에있는 .bashrc 파일에 세 줄을 추가하십시오.

편집 : 또한 터미널에서 "텍스트"페이지의 "ANSI 색상 표시"확인란이 선택되어 있는지 확인하십시오.


.bashrc도 작동합니까? 내 Mac에서는 .bash_profile이고 Linux에서는 .bashrc라는 것을 알고 있지만 전체 BSD와 Mac에서는 다른 것으로 생각했습니다 (LSCOLORS는 Linux와 BSD / Mac에서도 다릅니다).
Jorge Israel Peña

.bashrc는 저에게 효과적입니다 ... 그렇습니다. gls는 LS_COLORS를 사용합니다 (이것은 링크 된 페이지를 사용하여 생성 될 수도 있습니다)
Fredrik

감사. 그러나 프롬프트 또는 ls 출력에서 ​​'wheat', 'purple'과 같은 색상으로 구성하는 방법은 무엇입니까? 또는 'git diff'출력에서 'pink'. 감사합니다.
yinglcs

가능한 색상은 내가 링크 한 사이트에서 찾을 수있는 색상이며 표준의 일부이며 16 색상을 표시 할 수있는 터미널이 있으면 기뻤습니다.
Fredrik

13

이것이 내 .profile 파일에서 사용하는 것입니다. 현재 자식 분기와 색상을 통해 상태를 볼 수 있기 때문에 매력처럼 작동합니다. 수정 하려면 긴 줄의 줄 바꿈 문제를 피하기 위해 색상 코드피하는 것이 중요합니다 .

# 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}\]$ '

어떤 .profile 파일을 언급 했습니까?
Darshan Puranik

@ DarshanPurani, 나는 .profile내 $ bash에 파일 을 말하려고했다
Marc M

2

터미널 앱을 연 다음 메뉴 (터미널-> 기본 설정)를 통해 또는 Command+ 를 눌러 기본 설정 대화 상자를 엽니 다., . 환경 설정 대화 상자가 열리면 왼쪽의 분할 창에서 터미널 스타일을 선택하고 단추 표시 줄에서 텍스트를 선택하여 "ANSI 색상 표시"확인란이 선택되어 있는지 확인하십시오.

터미널의 색상이 활성화됩니다. 터미널의 출력에서 ​​색상을 얻으려면 터미널로 전송되는 데이터에 ANSI 색상 명령을 포함시켜야합니다. 이 작업을 수행하는 방법은 명령에 따라 다릅니다. 예를 들어 (위에 표시된 것처럼) ls명령에는 색상 옵션이 있습니다. 색상 코드는 "ansi color"에 대한 Google 검색을 수행하십시오.


질문은 이미 주제를 벗어난 것으로 종료되었습니다. :)
Ryan Kohn

0

컬러 ls 출력의 경우 gnu coreutils를 설치하고 대신 해당 버전의 ls를 사용하는 것이 좋습니다. ls 버전 중 하나에 대해 올바른 플래그를 전달해야합니다. gnu 버전의 경우 --color 또는 표준 OS X 버전의 경우 -G입니다. 그래서 당신은 같은 것을 할 수 있습니다

alias ls='ls --color'

.bashrc에.

프롬프트 색상을 지정하려면 터미널에 올바른 색상 코드를 사용해야하지만 광산에서는

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

생산하는

[hostname:directory] username%

대담한 흰색으로.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.