IT박스

git의 ANSI 색상이 올바르게 표시되지 않습니다.

itboxs 2020. 12. 4. 08:01
반응형

git의 ANSI 색상이 올바르게 표시되지 않습니다.


최근에 SLES 11로 전환했습니다. git 명령에 문제가 있습니다. 모든 ANSI 색상을 렌더링 할 수 없습니다. 대신 다음과 같은 ANSI 코드를 표시합니다.

* ESC [33m * 커밋 0a02124a0fd85c1f0094bcdf15bac1645e3c8630ESC [m

참고 : 'ls'의 ansi 색상은 매우 잘 작동합니다.


옵션 LESS을 포함하도록 환경 변수를 설정해보십시오 -R.

LESS=-R git grep ...

이 작품 경우, 추가 export LESS=-R사용자에 ~/.bashrc~/.profile또는 유사한 쉘 시작 파일.

   -R or --RAW-CONTROL-CHARS
          Like -r, but only ANSI "color" escape sequences are
          output in "raw" form.  Unlike -r, the screen
          appearance is maintained correctly in most cases.
          ANSI "color" escape sequences are sequences of the
          form:

               ESC [ ... m

          where the "..." is zero or more color specification
          characters

다른 사람들이 지적했듯이 문제는 터미널이 정상이지만 Git이 호출기를 호출 할 때 ANSI 색상 코드를 올바르게 해석하지 않는다는 것입니다.

나는 당신의 환경에서 설정 해제 하는 것으로 시작 LESS합니다. 이전에 Git에 필요한 것을 모호하게 설정 한 것처럼 들립니다. 그것이 해결된다면 당신은 거기에 있습니다. 정말로 커스터마이즈해야한다면 LESSGit이 FRSX기본값으로 시작 하므로 필요하지 않은 경우 변경하지 않도록주의하십시오.

어떤 이유로 든 Git에 대해 원하는 것과 다른 환경에서 원하는 작업수행 하는 경우 LESSGit 및 호출기를 처리하는 이상적인 방법은 core.pagerconfig 변수를 사용하는 것입니다. 맨 페이지를 인용하려면 :

git이 출력 페이지를 매기는 데 사용할 명령입니다. GIT_PAGER 환경 변수로 재정의 할 수 있습니다. git은 호출기를 실행할 때 설정되지 않은 경우 LESS 환경 변수를 FRSX로 설정합니다. LESS 변수를 다른 값으로 설정하여 이러한 설정을 변경할 수 있습니다. 또는 core.pager 옵션을 설정하여 프로젝트 또는 전역 기준으로 이러한 설정을 재정의 할 수 있습니다. core.pager 설정은 위의 LESS 환경 변수 동작에 영향을 미치지 않으므로 이런 방식으로 git의 기본 설정을 재정의하려면 명시 적이어야합니다. 예를 들어 이전 버전과 호환되는 방식으로 S 옵션을 비활성화하려면 core.pager를로 설정합니다 less -+$LESS -FRX. 이것은 git에 의해 쉘로 전달되어 최종 명령을 LESS=FRSX less -+FRSX -FRX.

그것은 당신이 원하는 옵션에 대한 지식과 결합되어 당신이 원하는 곳으로 가야합니다. (멋진 이전 버전과 호환되는 방법은 현재의 모든 옵션을 비활성화 LESS한 다음 원하는 옵션을 다시 추가 하는 방식으로 작동합니다 .)


git에서는 다음 -R옵션 을 사용하도록 호출기를 변경할 수 있습니다 .

git config --global core.pager "less -R"

나를 위해 이것은 작동하지 않았습니다.

git config --global core.pager less -R

그래서 대신 ~ / .gitconfig 파일에 다음을 추가했습니다.

 [core]
     pager = less -R

그것을 테스트하기 위해

git log --graph --pretty=format:"%C(yellow)%h%Creset%C(blue)%d%Creset %C(white bold)%s%Creset %C(white dim)(by %an %ar)%Creset" --all


알겠습니다. 이 문제는 LESS 변수와 관련이 있습니다.

다음 줄은이 문제를 해결합니다.

export LESS="-erX"

나는 같은 문제가 있었다. 하지만 왜 한 시스템에서는 git을 구성하고 다른 시스템에서는 필요하지 않습니까? 문제의 원인을 수정하고 싶습니다.

git config --global core.pager "less -R"

나를위한 해결 방법처럼 보입니다.


Laravel Artisan 및 Symfony 콘솔의 Windows v2.7.1 용 Git에서 ANSI 색상 이스케이프 시퀀스와 비슷한 문제가 발생했습니다. 여기에 언급 된 LESS솔루션으로 문제가 해결되지 않았습니다.

Windows 용 Git bash --login -i이로 터미널을 열기 때문에 터미널이 시작된 후 입력 된이 줄이 저에게 효과적이었습니다.

bash

누가 여기에 오든 내 경우에는 core.pager를 설정 해제하는 대신 빈 문자열로 설정하여 해결되었습니다.

git config --global core.pager ''

https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration 에서 왔습니다.

참고 URL : https://stackoverflow.com/questions/8484167/ansi-color-in-git-is-not-displayed-correctly

반응형