Zsh : 자동으로 실행 된 명령 수정 (generic colorizer)를 시스템에 설치하여

최근에 MacPorts를 통해 grc (generic colorizer)를 시스템에 설치하여 기본적으로 지원하지 않는 많은 명령에 대해 컬러 출력을 얻을 수 있습니다 (아래 스크린 샷 참조).
traceroute가있는 grc의 예
특정 명령이 아니라 모든 명령에 대해 grc를 자동으로 사용하고 싶습니다. zsh를 쉘로 사용합니다.

본질적으로 실행할 때마다 command -parameter 1 2 3자동으로로 실행되기를 원합니다 grc command -parameter 1 2 3. grc에 색상을 지정하기 위해 점점 더 많은 명령을 추가함에 따라 alias to 와 같은 별칭
을 사용하고 싶지 않습니다 .traceroutegrc traceroute

.zshrc에 대한 preexec 및 precmd 구성을 살펴 보았지만 원하는 것을 얻을 수있는 방법을 찾지 못했습니다.



답변

accept-line 위젯을 재정 의하여이를 수행 할 수 있습니다.

add-grc() { [[ $BUFFER = grc* ]] || BUFFER="grc $BUFFER"; zle .$WIDGET "$@"; }
zle -N accept-line add-grc

그러나 “for i (..)”, “var = x”, “f () {“…와 같은 명령에는 문제가 발생할 수 있습니다.


답변

다른 대안. 동일한 종류의 잠재적 인 문제 :

TRAPDEBUG() { eval "grc $ZSH_DEBUG_CMD"; setopt errexit; }

여기에 게시 된 솔루션에 대한 예외를 파악하는 대신 “grc”가 필요한 모든 명령에 대해 “별칭”을 사용합니다.


답변

사용을 고려 grc.zsh의 부품 것을 grc찾을 수 있습니다 여기에 . 지원되는 모든 명령에 대한 별명이 있습니다.
Stackoverflow 답변을 참조하십시오