최근에 MacPorts를 통해 grc (generic colorizer)를 시스템에 설치하여 기본적으로 지원하지 않는 많은 명령에 대해 컬러 출력을 얻을 수 있습니다 (아래 스크린 샷 참조).
특정 명령이 아니라 모든 명령에 대해 grc를 자동으로 사용하고 싶습니다. zsh를 쉘로 사용합니다.
본질적으로 실행할 때마다 command -parameter 1 2 3
자동으로로 실행되기를 원합니다 grc command -parameter 1 2 3
. grc에 색상을 지정하기 위해 점점 더 많은 명령을 추가함에 따라 alias to 와 같은 별칭
을 사용하고 싶지 않습니다 .traceroute
grc 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”가 필요한 모든 명령에 대해 “별칭”을 사용합니다.