Zsh: 실행된 명령을 자동으로 수정합니다.

Zsh: 실행된 명령을 자동으로 수정합니다.

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

본질적 으로 실행할 때 마다 command -parameter 1 2 3자동 으로 grc command -parameter 1 2 3.
traceroutegrc traceroute

.zshrc의 preexec 및 precmd 구성을 조사했지만 원하는 것을 달성할 수 있는 방법을 찾지 못했습니다.

답변1

승인 행 위젯을 재정의하여 이를 수행할 수 있습니다.

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

그러나 "for i (..)", "var=x", "f() {"... 등과 같은 명령에서는 문제가 발생할 수 있습니다.

답변2

다른 대안. 비슷한 잠재적인 문제:

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

여기에 게시된 솔루션에 대한 예외를 찾아내려고 하기보다는 "grc"가 필요한 모든 명령에 "별칭"을 사용하겠습니다.

답변3

찾을 수 있는 grc.zsh이들 중 일부를 사용해 보십시오 .grc여기. 지원되는 모든 명령에 대한 별칭이 있습니다.
이것 좀 봐스택 오버플로 답변

관련 정보